summaryrefslogtreecommitdiffstats
path: root/obconf
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2022-02-05 21:11:40 +0000
committer Eric Hameleers <alien@slackware.com>2022-02-05 21:11:40 +0000
commit36fbe117e279dea6899b73198f71be1a858a1af7 (patch)
treeea215b4546a63e93084df927c05bc6fa0c855231 /obconf
parent5185266c30bfa1715af10f4a076bebb45ef50e5f (diff)
downloadasb-36fbe117e279dea6899b73198f71be1a858a1af7.tar.gz
asb-36fbe117e279dea6899b73198f71be1a858a1af7.tar.xz
Initial revision
Diffstat (limited to 'obconf')
-rw-r--r--obconf/build/patches/obconf_no_libglade.patch6908
-rw-r--r--obconf/build/patches/obconf_switch_to_gtk3.patch349
2 files changed, 7257 insertions, 0 deletions
diff --git a/obconf/build/patches/obconf_no_libglade.patch b/obconf/build/patches/obconf_no_libglade.patch
new file mode 100644
index 00000000..06962392
--- /dev/null
+++ b/obconf/build/patches/obconf_no_libglade.patch
@@ -0,0 +1,6908 @@
+From 976d073496cd1bed1283b18947b8d303eb678f25 Mon Sep 17 00:00:00 2001
+From: galtgendo <galtgendo>
+Date: Sat, 17 Aug 2013 20:25:07 +0200
+Subject: [PATCH] Stop using libglade
+
+GtkOptionMenu -> GtkComboBoxText move is to make porting
+to gtk3 easier (this needs gtk+ 2.24), most of the pixbuf
+changes in src/preview.c for the same reason. Other changes
+should not go beyond 2.18.
+
+The changes in packing in glade file are also for the sake
+of gtk3 - they shouldn't affect gtk2 (hbox51 removal was
+mostly to make things cleaner - there didn't seem to be a
+reason for extra container there).
+
+The added catch is that http://savannah.gnu.org/bugs/?34506
+was only fixed in gettext 0.18.3 (just a few weeks old) and
+there's a little problem with gtk2 version of glade
+(http://bugzilla.gnome.org/show_bug.cgi?id=689667). The ui
+file itself nevertheless works.
+---
+ .gitignore | 1 +
+ Makefile.am | 14 +-
+ NEWS | 0
+ TODO | 0
+ configure.ac | 9 +-
+ src/about.c | 3 +-
+ src/desktops.c | 6 +-
+ src/dock.c | 120 +--
+ src/main.c | 32 +-
+ src/main.h | 5 +-
+ src/mouse.c | 43 +-
+ src/moveresize.c | 114 +--
+ src/obconf.gladep | 13 -
+ src/{obconf.glade => obconf.ui} | 2153 ++++++++++++++++++---------------------
+ src/preview.c | 136 ++-
+ src/preview_update.c | 4 +-
+ src/tree.c | 4 +-
+ src/windows.c | 92 +-
+ 18 files changed, 1227 insertions(+), 1522 deletions(-)
+ delete mode 100644 NEWS
+ delete mode 100644 TODO
+ delete mode 100644 src/obconf.gladep
+ rename src/{obconf.glade => obconf.ui} (75%)
+
+diff --git a/Makefile.am b/Makefile.am
+index 369ec3d..61c3805 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,7 +1,7 @@
+ SUBDIRS = po
+
+ localedir = $(datadir)/locale
+-gladedir = $(datadir)/obconf
++resourcedir = $(datadir)/obconf
+ pixmapdir = $(datadir)/pixmaps
+ themedir = $(datadir)/openbox/themes
+ desktopdir = $(datadir)/applications
+@@ -19,12 +19,11 @@ src_obconf_CPPFLAGS = \
+ $(OPENBOX_CFLAGS) \
+ $(LIBSTARTUPNOTIFICATION_CFLAGS) \
+ $(GTK_CFLAGS) \
+- $(GLADE_CFLAGS) \
+ $(GDK_PIXBUF_CFLAGS) \
+ $(XML_CFLAGS) \
+ -DLOCALEDIR=\"$(localedir)\" \
+ -DPIXMAPDIR=\"$(pixmapdir)\" \
+- -DGLADEDIR=\"$(gladedir)\" \
++ -DRESOURCEDIR=\"$(resourcedir)\" \
+ -DTHEMEDIR=\"$(themedir)\" \
+ -DG_LOG_DOMAIN=\"Obconf\"
+ src_obconf_LDADD = \
+@@ -31,7 +30,6 @@ src_obconf_LDADD = \
+ $(OPENBOX_LIBS) \
+ $(LIBSTARTUPNOTIFICATION_LIBS) \
+ $(GTK_LIBS) \
+- $(GLADE_LIBS) \
+ $(GDK_PIXBUF_LIBS) \
+ $(LIBINTL) \
+ $(ZLIB_LIBS) \
+@@ -66,13 +64,10 @@ src_obconf_SOURCES = \
+ src/tree.c \
+ src/tree.h
+
+-dist_glade_DATA = \
+- src/obconf.glade \
++dist_resource_DATA = \
++ src/obconf.ui \
+ pixmaps/video-display.png
+
+-dist_noinst_DATA = \
+- src/obconf.gladep
+-
+ dist_desktop_DATA = \
+ obconf.desktop
+
+@@ -121,8 +116,7 @@ EXTRA_DIST = \
+ m4/wchar_t.m4 \
+ m4/wint_t.m4 \
+ m4/xsize.m4 \
+- data/video-display.svg \
+- config.rpath
++ data/video-display.svg
+
+ # Packages need to run these...
+
+diff --git a/NEWS b/NEWS
+deleted file mode 100644
+index e69de29..0000000
+diff --git a/TODO b/TODO
+deleted file mode 100644
+index e69de29..0000000
+diff --git a/configure.ac b/configure.ac
+index f9b0775..b99620f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,6 +1,6 @@
+ AC_PREREQ([2.54])
+ AC_INIT([obconf], [2.0.4], [http://bugzilla.icculus.org])
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([subdir-objects foreign dist-xz])
+ AC_CONFIG_SRCDIR([src/main.c])
+
+ AC_PREFIX_DEFAULT([/usr/local])
+@@ -16,7 +16,6 @@ AC_PROG_INSTALL
+ CHECK_EXPORT_DYNAMIC
+ LDFLAGS="$LDFLAGS $EXPORT_DYNAMIC_FLAGS"
+
+-ALL_LINGUAS=""
+ AM_GNU_GETTEXT_VERSION(0.15)
+ AM_GNU_GETTEXT([external])
+
+@@ -28,7 +27,7 @@ PKG_CHECK_MODULES(LIBSTARTUPNOTIFICATION, [libstartup-notification-1.0])
+ AC_SUBST(LIBSTARTUPNOTIFICATION_CFLAGS)
+ AC_SUBST(LIBSTARTUPNOTIFICATION_LIBS)
+
+-PKG_CHECK_MODULES(GTK, [gtk+-2.0])
++PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.24.0])
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+
+@@ -36,10 +35,6 @@ PKG_CHECK_MODULES(GDK_PIXBUF, [gdk-pixbuf-2.0])
+ AC_SUBST(GDK_PIXBUF_CFLAGS)
+ AC_SUBST(GDK_PIXBUF_LIBS)
+
+-PKG_CHECK_MODULES(GLADE, [libglade-2.0])
+-AC_SUBST(GLADE_CFLAGS)
+-AC_SUBST(GLADE_LIBS)
+-
+ AC_CHECK_PROG(TAR, [tar], [yes], [no])
+ if test "$TAR" = "no"; then
+ AC_MSG_ERROR([Unable to find the tar command.])
+diff --git a/src/about.c b/src/about.c
+index c56eb26..5fed1a9 100644
+--- a/src/about.c
++++ b/src/about.c
+@@ -10,7 +10,8 @@ void on_about_close_clicked()
+ gtk_widget_hide(get_widget("about_window"));
+ }
+
+-void on_about_window_delete_event()
++gboolean on_about_window_delete_event()
+ {
+ gtk_widget_hide(get_widget("about_window"));
++ return TRUE;
+ }
+diff --git a/src/desktops.c b/src/desktops.c
+index 6f205c4..8297f00 100644
+--- a/src/desktops.c
++++ b/src/desktops.c
+@@ -212,7 +212,7 @@ static void desktops_write_names()
+ tree_apply();
+
+ /* make openbox re-set the property */
+- XDeleteProperty(GDK_DISPLAY(), GDK_ROOT_WINDOW(),
++ XDeleteProperty(gdk_x11_get_default_xdisplay(), GDK_ROOT_WINDOW(),
+ gdk_x11_get_xatom_by_name("_NET_DESKTOP_NAMES"));
+ }
+
+@@ -225,7 +225,7 @@ static void desktops_write_number()
+ ce.xclient.type = ClientMessage;
+ ce.xclient.message_type =
+ gdk_x11_get_xatom_by_name("_NET_NUMBER_OF_DESKTOPS");
+- ce.xclient.display = GDK_DISPLAY();
++ ce.xclient.display = gdk_x11_get_default_xdisplay();
+ ce.xclient.window = GDK_ROOT_WINDOW();
+ ce.xclient.format = 32;
+ ce.xclient.data.l[0] = num_desktops;
+@@ -233,7 +233,7 @@ static void desktops_write_number()
+ ce.xclient.data.l[2] = 0;
+ ce.xclient.data.l[3] = 0;
+ ce.xclient.data.l[4] = 0;
+- XSendEvent(GDK_DISPLAY(), GDK_ROOT_WINDOW(), FALSE,
++ XSendEvent(gdk_x11_get_default_xdisplay(), GDK_ROOT_WINDOW(), FALSE,
+ SubstructureNotifyMask | SubstructureRedirectMask,
+ &ce);
+ }
+diff --git a/src/dock.c b/src/dock.c
+index c1b8d54..4055524 100644
+--- a/src/dock.c
++++ b/src/dock.c
+@@ -82,7 +82,7 @@ void dock_setup_tab()
+ else if (!strcasecmp(s, "Floating")) pos = POSITION_FLOATING;
+ else pos = POSITION_TOPLEFT;
+ g_free(s);
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), pos);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), pos);
+
+ w = get_widget("dock_float_x");
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
+@@ -107,7 +107,7 @@ void dock_setup_tab()
+ if (!strcasecmp(s, "Horizontal")) pos = DIRECTION_HORIZONTAL;
+ else pos = DIRECTION_VERTICAL;
+ g_free(s);
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), pos);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), pos);
+
+ w = get_widget("dock_nostrut");
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
+@@ -136,7 +136,7 @@ static void dock_enable_stuff()
+ gboolean b;
+
+ w = get_widget("dock_position");
+- b = gtk_option_menu_get_history(GTK_OPTION_MENU(w)) == POSITION_FLOATING;
++ b = gtk_combo_box_get_active(GTK_COMBO_BOX(w)) == POSITION_FLOATING;
+
+ s = get_widget("dock_float_x");
+ gtk_widget_set_sensitive(s, b);
+@@ -166,75 +166,39 @@ static void dock_enable_stuff()
+ gtk_widget_set_sensitive(s, b);
+ }
+
+-void on_dock_top_left_activate(GtkMenuItem *w, gpointer data)
++void on_dock_position_changed(GtkComboBox *w, gpointer data)
+ {
+ if (mapping) return;
+
+- tree_set_string("dock/position", "TopLeft");
+- dock_enable_stuff();
+-}
+-
+-void on_dock_top_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("dock/position", "Top");
+- dock_enable_stuff();
+-}
+-
+-void on_dock_top_right_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("dock/position", "TopRight");
+- dock_enable_stuff();
+-}
+-
+-void on_dock_left_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("dock/position", "Left");
+- dock_enable_stuff();
+-}
+-
+-void on_dock_right_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("dock/position", "Right");
+- dock_enable_stuff();
+-}
+-
+-void on_dock_bottom_left_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("dock/position", "BottomLeft");
+- dock_enable_stuff();
+-}
+-
+-void on_dock_bottom_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("dock/position", "Bottom");
+- dock_enable_stuff();
+-}
+-
+-void on_dock_bottom_right_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("dock/position", "BottomRight");
+- dock_enable_stuff();
+-}
+-
+-void on_dock_floating_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("dock/position", "Floating");
++ switch (gtk_combo_box_get_active(w)) {
++ case 0:
++ tree_set_string("dock/position", "TopLeft");
++ break;
++ case 1:
++ tree_set_string("dock/position", "Top");
++ break;
++ case 2:
++ tree_set_string("dock/position", "TopRight");
++ break;
++ case 3:
++ tree_set_string("dock/position", "Left");
++ break;
++ case 4:
++ tree_set_string("dock/position", "Right");
++ break;
++ case 5:
++ tree_set_string("dock/position", "BottomLeft");
++ break;
++ case 6:
++ tree_set_string("dock/position", "Bottom");
++ break;
++ case 7:
++ tree_set_string("dock/position", "BottomRight");
++ break;
++ case 8:
++ tree_set_string("dock/position", "Floating");
++ break;
++ }
+ dock_enable_stuff();
+ }
+
+@@ -276,18 +240,18 @@ void on_dock_stacking_bottom_toggled(GtkToggleButton *w, gpointer data)
+ tree_set_string("dock/stacking", "Below");
+ }
+
+-void on_dock_horizontal_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("dock/direction", "Horizontal");
+-}
+-
+-void on_dock_vertical_activate(GtkMenuItem *w, gpointer data)
++void on_dock_direction_changed(GtkComboBox *w, gpointer data)
+ {
+ if (mapping) return;
+
+- tree_set_string("dock/direction", "Vertical");
++ switch (gtk_combo_box_get_active(w)) {
++ case 0:
++ tree_set_string("dock/direction", "Vertical");
++ break;
++ case 1:
++ tree_set_string("dock/direction", "Horizontal");
++ break;
++ }
+ }
+
+ void on_dock_nostrut_toggled(GtkToggleButton *w, gpointer data)
+diff --git a/src/main.c b/src/main.c
+index 7acc3ec..ff11ef9 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -38,7 +38,7 @@
+ GtkWidget *mainwin = NULL;
+ GtkWidget *tabstrip = NULL;
+
+-GladeXML *glade;
++GtkBuilder *builder;
+ xmlDocPtr doc;
+ xmlNodePtr root;
+ RrInstance *rrinst;
+@@ -63,9 +63,9 @@ void obconf_error(gchar *msg, gboolean modal)
+ if (modal)
+ gtk_dialog_run(GTK_DIALOG(d));
+ else {
+- g_signal_connect_swapped(GTK_OBJECT(d), "response",
++ g_signal_connect_swapped(G_OBJECT(d), "response",
+ G_CALLBACK(gtk_widget_destroy),
+- GTK_OBJECT(d));
++ G_OBJECT(d));
+ gtk_widget_show(d);
+ }
+ }
+@@ -149,7 +149,7 @@ static gboolean get_all(Window win, Atom prop, Atom type, gint size,
+ gint ret_size;
+ gulong ret_items, bytes_left;
+
+- res = XGetWindowProperty(GDK_DISPLAY(), win, prop, 0l, G_MAXLONG,
++ res = XGetWindowProperty(gdk_x11_get_default_xdisplay(), win, prop, 0l, G_MAXLONG,
+ FALSE, type, &ret_type, &ret_size,
+ &ret_items, &bytes_left, &xdata);
+ if (res == Success) {
+@@ -203,6 +203,7 @@ static gboolean prop_get_string_utf8(Window win, Atom prop, gchar **ret)
+ int main(int argc, char **argv)
+ {
+ gchar *p;
++ GError *error = NULL;
+ gboolean exit_with_error = FALSE;
+
+ bindtextdomain(PACKAGE_NAME, LOCALEDIR);
+@@ -217,18 +218,21 @@ int main(int argc, char **argv)
+ return 0;
+ }
+
+- p = g_build_filename(GLADEDIR, "obconf.glade", NULL);
+- glade = glade_xml_new(p, NULL, NULL);
++ p = g_build_filename(RESOURCEDIR, "obconf.ui", NULL);
++ builder = gtk_builder_new();
++ gtk_builder_add_from_file(builder, p, &error);
+ g_free(p);
+
+- if (!glade) {
+- obconf_error(_("Failed to load the obconf.glade interface file. You have probably failed to install ObConf properly."), TRUE);
++ if (error) {
++ obconf_error(_("Failed to load the obconf.ui interface file. You have probably failed to install ObConf properly."), TRUE);
++ g_printerr("%s\n", error->message);
++ g_error_free(error);
+ exit_with_error = TRUE;
+ }
+
+ paths = obt_paths_new();
+ parse_i = obt_xml_instance_new();
+- rrinst = RrInstanceNew(GDK_DISPLAY(), gdk_x11_get_default_screen());
++ rrinst = RrInstanceNew(gdk_x11_get_default_xdisplay(), gdk_x11_get_default_screen());
+
+ if (!obc_config_file) {
+ gchar *p;
+@@ -270,14 +274,14 @@ int main(int argc, char **argv)
+ }
+
+ if (!exit_with_error) {
+- glade_xml_signal_autoconnect(glade);
++ gtk_builder_connect_signals(builder, NULL);
+
+ {
+ gchar *s = g_strdup_printf
+ ("<span weight=\"bold\" size=\"xx-large\">ObConf %s</span>",
+ PACKAGE_VERSION);
+ gtk_label_set_markup(GTK_LABEL
+- (glade_xml_get_widget(glade, "title_label")),
++ (gtk_builder_get_object(builder, "title_label")),
+ s);
+ g_free(s);
+ }
+@@ -292,7 +296,7 @@ int main(int argc, char **argv)
+ dock_setup_tab();
+
+ mainwin = get_widget("main_window");
+- tabstrip = glade_xml_get_widget(glade, "tabstrip");
++ tabstrip = get_widget("tabstrip");
+
+ if (obc_theme_install)
+ theme_install(obc_theme_install);
+@@ -336,7 +340,7 @@ void obconf_show_main()
+ SnDisplay *sn_d;
+ SnLauncheeContext *sn_cx;
+
+- if (GTK_WIDGET_VISIBLE(mainwin)) return;
++ if (gtk_widget_get_visible(mainwin)) return;
+
+ gtk_widget_show_all(mainwin);
+
+@@ -354,7 +358,7 @@ void obconf_show_main()
+
+ if (sn_cx)
+ sn_launchee_context_setup_window
+- (sn_cx, GDK_WINDOW_XWINDOW(GDK_WINDOW(mainwin->window)));
++ (sn_cx, GDK_WINDOW_XID(gtk_widget_get_window(mainwin)));
+
+ if (sn_cx)
+ sn_launchee_context_complete(sn_cx);
+diff --git a/src/main.h b/src/main.h
+index 4f3213b..23852d3 100644
+--- a/src/main.h
++++ b/src/main.h
+@@ -25,16 +25,15 @@
+ #include <obt/paths.h>
+
+ #include <gtk/gtk.h>
+-#include <glade/glade-xml.h>
+
+-extern GladeXML *glade;
++extern GtkBuilder *builder;
+ extern RrInstance *rrinst;
+ extern GtkWidget *mainwin;
+ extern gchar *obc_config_file;
+ extern ObtPaths *paths;
+ extern ObtXmlInst *parse_i;
+
+-#define get_widget(s) glade_xml_get_widget(glade, s)
++#define get_widget(s) GTK_WIDGET(gtk_builder_get_object(builder, s))
+
+ void obconf_error(gchar *msg, gboolean model);
+ void obconf_show_main();
+diff --git a/src/mouse.c b/src/mouse.c
+index 88f13d9..ce9059a 100644
+--- a/src/mouse.c
++++ b/src/mouse.c
+@@ -30,8 +30,6 @@ static xmlNodePtr saved_custom = NULL;
+
+ static gint read_doubleclick_action();
+ static void write_doubleclick_action(gint a);
+-static void on_titlebar_doubleclick_custom_activate(GtkMenuItem *w,
+- gpointer data);
+ static void enable_stuff();
+
+ void mouse_setup_tab()
+@@ -69,16 +67,10 @@ void mouse_setup_tab()
+ w = get_widget("titlebar_doubleclick");
+ a = read_doubleclick_action();
+ if (a == TITLEBAR_CUSTOM) {
+- GtkWidget *i = gtk_menu_item_new_with_label(_("Custom actions"));
+- g_signal_connect(i, "activate",
+- G_CALLBACK (on_titlebar_doubleclick_custom_activate),
+- NULL);
+- gtk_menu_shell_append
+- (GTK_MENU_SHELL
+- (gtk_option_menu_get_menu
+- (GTK_OPTION_MENU(w))), i);
++ gtk_combo_box_text_append_text
++ (GTK_COMBO_BOX_TEXT(w), _("Custom actions"));
+ }
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), a);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), a);
+
+ enable_stuff();
+
+@@ -147,26 +139,21 @@ void on_focus_under_mouse_toggled(GtkToggleButton *w, gpointer data)
+ tree_set_bool("focus/underMouse", gtk_toggle_button_get_active(w));
+ }
+
+-void on_titlebar_doubleclick_maximize_activate(GtkMenuItem *w, gpointer data)
++void on_titlebar_doubleclick_changed(GtkComboBox *w, gpointer data)
+ {
+ if (mapping) return;
+
+- write_doubleclick_action(TITLEBAR_MAXIMIZE);
+-}
+-
+-void on_titlebar_doubleclick_shade_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- write_doubleclick_action(TITLEBAR_SHADE);
+-}
+-
+-static void on_titlebar_doubleclick_custom_activate(GtkMenuItem *w,
+- gpointer data)
+-{
+- if (mapping) return;
+-
+- write_doubleclick_action(TITLEBAR_CUSTOM);
++ switch (gtk_combo_box_get_active(w)) {
++ case 0:
++ write_doubleclick_action(TITLEBAR_MAXIMIZE);
++ break;
++ case 1:
++ write_doubleclick_action(TITLEBAR_SHADE);
++ break;
++ case 2:
++ write_doubleclick_action(TITLEBAR_CUSTOM);
++ break;
++ }
+ }
+
+ void on_doubleclick_time_value_changed(GtkSpinButton *w, gpointer data)
+diff --git a/src/moveresize.c b/src/moveresize.c
+index 6048a37..c6fb3dd 100644
+--- a/src/moveresize.c
++++ b/src/moveresize.c
+@@ -82,7 +82,7 @@ void moveresize_setup_tab()
+ else if (!strcasecmp(s, "Never")) pos = POPUP_NEVER;
+ else pos = POPUP_NONPIXEL;
+ g_free(s);
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), pos);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), pos);
+
+ w = get_widget("drag_threshold");
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
+@@ -94,7 +94,7 @@ void moveresize_setup_tab()
+ if (!strcasecmp(s, "Fixed")) pos = POSITION_FIXED;
+ else pos = POSITION_CENTER;
+ g_free(s);
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), pos);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), pos);
+
+ w = get_widget("fixed_x_popup");
+ s = tree_get_string("resize/popupFixedPosition/x", "0");
+@@ -103,7 +103,7 @@ void moveresize_setup_tab()
+ if (!strcasecmp(s, "Center")) pos = EDGE_CENTER;
+ else if (opp) pos = EDGE_RIGHT;
+ else pos = EDGE_LEFT;
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), pos);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), pos);
+
+ w = get_widget("fixed_x_pos");
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), MAX(atoi(s), 0));
+@@ -115,7 +115,7 @@ void moveresize_setup_tab()
+ if (!strcasecmp(s, "Center")) pos = EDGE_CENTER;
+ else if (opp) pos = EDGE_RIGHT;
+ else pos = EDGE_LEFT;
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), pos);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), pos);
+
+ w = get_widget("fixed_y_pos");
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), MAX(atoi(s), 0));
+@@ -140,7 +140,7 @@ static void enable_stuff()
+ gboolean b;
+
+ w = get_widget("resize_popup");
+- b = gtk_option_menu_get_history(GTK_OPTION_MENU(w)) != POPUP_NEVER;
++ b = gtk_combo_box_get_active(GTK_COMBO_BOX(w)) != POPUP_NEVER;
+ w = get_widget("resize_position");
+ gtk_widget_set_sensitive(w, b);
+
+@@ -150,7 +150,7 @@ static void enable_stuff()
+ gtk_widget_set_sensitive(w, b);
+
+ w = get_widget("resize_position");
+- b = gtk_option_menu_get_history(GTK_OPTION_MENU(w)) == POSITION_FIXED;
++ b = gtk_combo_box_get_active(GTK_COMBO_BOX(w)) == POSITION_FIXED;
+ w = get_widget("fixed_x_popup");
+ gtk_widget_set_sensitive(w, b);
+ w = get_widget("fixed_y_popup");
+@@ -163,12 +163,12 @@ static void enable_stuff()
+ }
+ else {
+ w = get_widget("fixed_x_popup");
+- b = gtk_option_menu_get_history(GTK_OPTION_MENU(w)) != EDGE_CENTER;
++ b = gtk_combo_box_get_active(GTK_COMBO_BOX(w)) != EDGE_CENTER;
+ w = get_widget("fixed_x_pos");
+ gtk_widget_set_sensitive(w, b);
+
+ w = get_widget("fixed_y_popup");
+- b = gtk_option_menu_get_history(GTK_OPTION_MENU(w)) != EDGE_CENTER;
++ b = gtk_combo_box_get_active(GTK_COMBO_BOX(w)) != EDGE_CENTER;
+ w = get_widget("fixed_y_pos");
+ gtk_widget_set_sensitive(w, b);
+ }
+@@ -196,27 +196,21 @@ void on_resize_contents_toggled(GtkToggleButton *w, gpointer data)
+ tree_set_bool("resize/drawContents", gtk_toggle_button_get_active(w));
+ }
+
+-void on_resize_popup_nonpixel_activate(GtkMenuItem *w, gpointer data)
++void on_resize_popup_changed(GtkComboBox *w, gpointer data)
+ {
+ if (mapping) return;
+
+- tree_set_string("resize/popupShow", "NonPixel");
+- enable_stuff();
+-}
+-
+-void on_resize_popup_always_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("resize/popupShow", "Always");
+- enable_stuff();
+-}
+-
+-void on_resize_popup_never_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("resize/popupShow", "Never");
++ switch(gtk_combo_box_get_active(w)) {
++ case 0:
++ tree_set_string("resize/popupShow", "NonPixel");
++ break;
++ case 1:
++ tree_set_string("resize/popupShow", "Always");
++ break;
++ case 2:
++ tree_set_string("resize/popupShow", "Never");
++ break;
++ }
+ enable_stuff();
+ }
+
+@@ -228,27 +222,21 @@ void on_drag_threshold_value_changed(GtkSpinButton *w, gpointer data)
+ gtk_spin_button_get_value_as_int(w));
+ }
+
+-void on_resize_position_center_activate(GtkMenuItem *w, gpointer data)
++void on_resize_position_changed(GtkComboBox *w, gpointer data)
+ {
+ if (mapping) return;
+
+- tree_set_string("resize/popupPosition", "Center");
+- enable_stuff();
+-}
+-
+-void on_resize_position_top_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("resize/popupPosition", "Top");
+- enable_stuff();
+-}
+-
+-void on_resize_position_fixed_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("resize/popupPosition", "Fixed");
++ switch(gtk_combo_box_get_active(w)) {
++ case 0:
++ tree_set_string("resize/popupPosition", "Center");
++ break;
++ case 1:
++ tree_set_string("resize/popupPosition", "Top");
++ break;
++ case 2:
++ tree_set_string("resize/popupPosition", "Fixed");
++ break;
++ }
+ enable_stuff();
+ }
+
+@@ -266,7 +254,7 @@ static void write_fixed_position(const gchar *coord)
+ popup = get_widget(popupname);
+ g_free(popupname);
+
+- edge = gtk_option_menu_get_history(GTK_OPTION_MENU(popup));
++ edge = gtk_combo_box_get_active(GTK_COMBO_BOX(popup));
+ g_assert(edge == EDGE_CENTER || edge == EDGE_LEFT || edge == EDGE_RIGHT);
+
+ if (edge == EDGE_CENTER)
+@@ -295,23 +283,7 @@ static void write_fixed_position(const gchar *coord)
+ }
+
+
+-void on_fixed_x_position_left_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- write_fixed_position("x");
+- enable_stuff();
+-}
+-
+-void on_fixed_x_position_right_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- write_fixed_position("x");
+- enable_stuff();
+-}
+-
+-void on_fixed_x_position_center_activate(GtkMenuItem *w, gpointer data)
++void on_fixed_x_position_changed(GtkComboBox *w, gpointer data)
+ {
+ if (mapping) return;
+
+@@ -319,23 +291,7 @@ void on_fixed_x_position_center_activate(GtkMenuItem *w, gpointer data)
+ enable_stuff();
+ }
+
+-void on_fixed_y_position_top_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- write_fixed_position("y");
+- enable_stuff();
+-}
+-
+-void on_fixed_y_position_bottom_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- write_fixed_position("y");
+- enable_stuff();
+-}
+-
+-void on_fixed_y_position_center_activate(GtkMenuItem *w, gpointer data)
++void on_fixed_y_position_changed(GtkComboBox *w, gpointer data)
+ {
+ if (mapping) return;
+
+diff --git a/src/obconf.gladep b/src/obconf.gladep
+deleted file mode 100644
+index 5bcc940..0000000
+--- a/src/obconf.gladep
++++ /dev/null
+@@ -1,13 +0,0 @@
+-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
+-<!DOCTYPE glade-project SYSTEM "http://glade.gnome.org/glade-project-2.0.dtd">
+-
+-<glade-project>
+- <name>ObConf</name>
+- <program_name>obconf</program_name>
+- <directory>../</directory>
+- <source_directory></source_directory>
+- <pixmaps_directory>../pixmaps</pixmaps_directory>
+- <gnome_support>FALSE</gnome_support>
+- <output_translatable_strings>TRUE</output_translatable_strings>
+- <translatable_strings_file>strings.c</translatable_strings_file>
+-</glade-project>
+diff --git a/src/obconf.glade b/src/obconf.ui
+similarity index 75%
+rename from src/obconf.glade
+rename to src/obconf.ui
+index faf98e0..b2efefb 100644
+--- a/src/obconf.glade
++++ b/src/obconf.ui
+@@ -1,31 +1,182 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<glade-interface>
++<?xml version="1.0"?>
++<interface>
++ <object class="GtkAdjustment" id="adjustment1">
++ <property name="upper">100</property>
++ <property name="lower">1</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">1</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment10">
++ <property name="upper">10000</property>
++ <property name="lower">1</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">10</property>
++ <property name="page_size">0</property>
++ <property name="value">1</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment11">
++ <property name="upper">100</property>
++ <property name="lower">1</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">1</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment12">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">20</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment13">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">20</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment14">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">20</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment15">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">20</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment16">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">1</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment17">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">1</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment18">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">10</property>
++ <property name="page_size">0</property>
++ <property name="value">300</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment19">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">10</property>
++ <property name="page_size">0</property>
++ <property name="value">300</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment2">
++ <property name="upper">100</property>
++ <property name="lower">1</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">1</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment3">
++ <property name="upper">100</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">20</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment4">
++ <property name="upper">100</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">1</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment5">
++ <property name="upper">10000</property>
++ <property name="lower">100</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">10</property>
++ <property name="page_size">0</property>
++ <property name="value">100</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment6">
++ <property name="upper">1000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">1</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment7">
++ <property name="upper">1000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">1</property>
++ <property name="page_size">0</property>
++ <property name="value">1</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment8">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">10</property>
++ <property name="page_size">0</property>
++ <property name="value">0</property>
++ </object>
++ <object class="GtkAdjustment" id="adjustment9">
++ <property name="upper">10000</property>
++ <property name="lower">0</property>
++ <property name="page_increment">10</property>
++ <property name="step_increment">10</property>
++ <property name="page_size">0</property>
++ <property name="value">0</property>
++ </object>
+ <!-- interface-requires gtk+ 2.6 -->
+ <!-- interface-naming-policy toplevel-contextual -->
+- <widget class="GtkWindow" id="about_window">
++ <object class="GtkDialog" id="about_window">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">About ObConf</property>
+- <property name="type_hint">dialog</property>
+- <signal name="delete_event" handler="on_about_window_delete_event"/>
+- <child>
+- <widget class="GtkVBox" id="vbox33">
++ <signal handler="on_about_window_delete_event" name="delete_event"/>
++ <child internal-child="vbox">
++ <object class="GtkVBox" id="vbox33">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">12</property>
+ <child>
+- <widget class="GtkVBox" id="vbox1">
++ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="title_label">
++ <object class="GtkLabel" id="title_label">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">&lt;span weight="bold" size="xx-large"&gt;ObConf VERSION&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+ <property name="selectable">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -33,12 +184,12 @@
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label81">
++ <object class="GtkLabel" id="label81">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">A preferences manager for Openbox</property>
+ <property name="selectable">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -46,7 +197,7 @@
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label80">
++ <object class="GtkLabel" id="label80">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">Copyright (c) 2003-2008
+@@ -55,27 +206,27 @@ Tim Riley &lt;tr@slackzone.org&gt;
+ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ <property name="justify">center</property>
+ <property name="selectable">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- <child>
+- <widget class="GtkHButtonBox" id="hbuttonbox2">
++ <child internal-child="action_area">
++ <object class="GtkHButtonBox" id="hbuttonbox2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+- <widget class="GtkButton" id="about_close">
++ <object class="GtkButton" id="about_close">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -85,41 +236,39 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_stock">True</property>
+- <signal name="clicked" handler="on_about_close_clicked" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_about_close_clicked" name="clicked"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
+- <property name="position">1</property>
+- </packing>
++ </object>
+ </child>
+- </widget>
++ </object>
+ </child>
+- </widget>
+- <widget class="GtkWindow" id="key_prompt">
++ <action-widgets>
++ <action-widget response="-5">about_close</action-widget>
++ </action-widgets>
++ </object>
++ <object class="GtkWindow" id="key_prompt">
+ <property name="can_focus">False</property>
+ <property name="title" translatable="yes">window1</property>
+ <child>
+- <widget class="GtkVBox" id="vbox49">
++ <object class="GtkVBox" id="vbox49">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">18</property>
+ <child>
+- <widget class="GtkLabel" id="label117">
++ <object class="GtkLabel" id="label117">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Press the key you wish to bind...&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -127,61 +276,61 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkEntry" id="entry2">
++ <object class="GtkEntry" id="entry2">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="has_focus">True</property>
+- <property name="invisible_char">●</property>
++ <property name="invisible_char">&#x25CF;</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ </child>
+- </widget>
+- <widget class="GtkWindow" id="main_window">
++ </object>
++ <object class="GtkWindow" id="main_window">
+ <property name="can_focus">False</property>
+ <property name="border_width">6</property>
+ <property name="title" translatable="yes">Openbox Configuration Manager</property>
+ <property name="icon_name">preferences-system-windows</property>
+- <signal name="delete_event" handler="on_main_window_delete_event"/>
++ <signal handler="on_main_window_delete_event" name="delete_event"/>
+ <child>
+- <widget class="GtkVBox" id="vbox8">
++ <object class="GtkVBox" id="vbox8">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkNotebook" id="tabstrip">
++ <object class="GtkNotebook" id="tabstrip">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="tab_pos">left</property>
+ <property name="scrollable">True</property>
+ <child>
+- <widget class="GtkVBox" id="vbox20">
++ <object class="GtkVBox" id="vbox20">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkVBox" id="vbox21">
++ <object class="GtkVBox" id="vbox21">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label59">
++ <object class="GtkLabel" id="label59">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Theme&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -189,15 +338,15 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox29">
++ <object class="GtkHBox" id="hbox29">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label60">
++ <object class="GtkLabel" id="label60">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -205,46 +354,46 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox22">
++ <object class="GtkVBox" id="vbox22">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkScrolledWindow" id="scrolledwindow3">
++ <object class="GtkScrolledWindow" id="scrolledwindow3">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">in</property>
+ <child>
+- <widget class="GtkTreeView" id="theme_names">
++ <object class="GtkTreeView" id="theme_names">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+- </widget>
++ </object>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -252,34 +401,34 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox41">
++ <object class="GtkVBox" id="vbox41">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkButton" id="install_theme">
++ <object class="GtkButton" id="install_theme">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+- <signal name="clicked" handler="on_install_theme_clicked"/>
++ <signal handler="on_install_theme_clicked" name="clicked"/>
+ <child>
+- <widget class="GtkAlignment" id="alignment1">
++ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+- <widget class="GtkHBox" id="hbox53">
++ <object class="GtkHBox" id="hbox53">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
+ <child>
+- <widget class="GtkImage" id="image1">
++ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-open</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -287,30 +436,30 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label103">
++ <object class="GtkLabel" id="label103">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Install a new theme...</property>
+ <property name="use_underline">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ </child>
+- </widget>
++ </object>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -318,34 +467,34 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox42">
++ <object class="GtkVBox" id="vbox42">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkButton" id="theme_archive">
++ <object class="GtkButton" id="theme_archive">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+- <signal name="clicked" handler="on_theme_archive_clicked"/>
++ <signal handler="on_theme_archive_clicked" name="clicked"/>
+ <child>
+- <widget class="GtkAlignment" id="alignment2">
++ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+- <widget class="GtkHBox" id="hbox55">
++ <object class="GtkHBox" id="hbox55">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">2</property>
+ <child>
+- <widget class="GtkImage" id="image2">
++ <object class="GtkImage" id="image2">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-save</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -353,71 +502,70 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label106">
++ <object class="GtkLabel" id="label106">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Create a theme _archive (.obt)...</property>
+ <property name="use_underline">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ </child>
+- </widget>
++ </object>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ </child>
+- <child>
+- <widget class="GtkLabel" id="label3">
++ <child type="tab">
++ <object class="GtkLabel" id="label3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">6</property>
+ <property name="ypad">8</property>
+ <property name="label" translatable="yes">Theme</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="tab_fill">False</property>
+- <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox36">
++ <object class="GtkVBox" id="vbox36">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">18</property>
+ <child>
+- <widget class="GtkVBox" id="vbox40">
++ <object class="GtkVBox" id="vbox40">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label99">
++ <object class="GtkLabel" id="label99">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Windows&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -425,23 +573,23 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox50">
++ <object class="GtkHBox" id="hbox50">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkVBox" id="vbox69">
++ <object class="GtkVBox" id="vbox69">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkHBox" id="hbox93">
++ <object class="GtkHBox" id="hbox93">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label171">
++ <object class="GtkLabel" id="label171">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -449,40 +597,29 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox70">
++ <object class="GtkVBox" id="vbox70">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkHBox" id="hbox51">
++ <object class="GtkCheckButton" id="window_border">
++ <property name="label" translatable="yes">_Windows retain a border when undecorated</property>
+ <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkCheckButton" id="window_border">
+- <property name="label" translatable="yes">_Windows retain a border when undecorated</property>
+- <property name="visible">True</property>
+- <property name="can_focus">True</property>
+- <property name="receives_default">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="use_underline">True</property>
+- <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_window_border_toggled" after="yes"/>
+- </widget>
+- <packing>
+- <property name="expand">False</property>
+- <property name="fill">False</property>
+- <property name="position">0</property>
+- </packing>
+- </child>
+- </widget>
++ <property name="can_focus">True</property>
++ <property name="receives_default">False</property>
++ <property name="use_action_appearance">False</property>
++ <property name="use_underline">True</property>
++ <property name="draw_indicator">True</property>
++ <signal after="yes" handler="on_window_border_toggled" name="toggled"/>
++ </object>
+ <packing>
+- <property name="expand">True</property>
+- <property name="fill">True</property>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkCheckButton" id="animate_iconify">
++ <object class="GtkCheckButton" id="animate_iconify">
+ <property name="label" translatable="yes">A_nimate iconify and restore</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -490,43 +627,43 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_animate_iconify_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_animate_iconify_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -534,18 +671,18 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox38">
++ <object class="GtkVBox" id="vbox38">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label88">
++ <object class="GtkLabel" id="label88">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Window Titles&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -553,15 +690,15 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox43">
++ <object class="GtkHBox" id="hbox43">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label89">
++ <object class="GtkLabel" id="label89">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -569,23 +706,23 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox83">
++ <object class="GtkVBox" id="vbox83">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkHBox" id="hbox44">
++ <object class="GtkHBox" id="hbox44">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label90">
++ <object class="GtkLabel" id="label90">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Button order:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">title_layout</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -593,10 +730,10 @@ Javeed Shaikh &lt;syscrash2k@gmail.com&gt;</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkEntry" id="title_layout">
++ <object class="GtkEntry" id="title_layout">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+- <property name="tooltip" translatable="yes">N - The window's icon
++ <property name="tooltip-text" translatable="yes">N - The window's icon
+ D - The all-desktops (sticky) button
+ S - The shade (roll up) button
+ L - The label (window title)
+@@ -607,15 +744,15 @@ C - The close button</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <signal name="changed" handler="on_title_layout_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_title_layout_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -623,16 +760,16 @@ C - The close button</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox114">
++ <object class="GtkHBox" id="hbox114">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label233">
++ <object class="GtkLabel" id="label233">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -640,12 +777,12 @@ C - The close button</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox115">
++ <object class="GtkHBox" id="hbox115">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label229">
++ <object class="GtkLabel" id="label229">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+@@ -654,7 +791,7 @@ C - The close button</property>
+ L:
+ I:
+ M:</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -662,7 +799,7 @@ M:</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label230">
++ <object class="GtkLabel" id="label230">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+@@ -671,7 +808,7 @@ M:</property>
+ Window label (Title)
+ Iconify (Minimize)
+ Maximize</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -679,10 +816,10 @@ Maximize</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVSeparator" id="vseparator1">
++ <object class="GtkVSeparator" id="vseparator1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -690,7 +827,7 @@ Maximize</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label231">
++ <object class="GtkLabel" id="label231">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+@@ -698,7 +835,7 @@ Maximize</property>
+ <property name="label" translatable="yes">C:
+ S:
+ D:</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -706,7 +843,7 @@ D:</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label232">
++ <object class="GtkLabel" id="label232">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+@@ -714,42 +851,42 @@ D:</property>
+ <property name="label" translatable="yes">Close
+ Shade (Roll up)
+ Omnipresent (On all desktops)</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -757,18 +894,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox39">
++ <object class="GtkVBox" id="vbox39">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label91">
++ <object class="GtkLabel" id="label91">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Fonts&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -776,15 +913,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox45">
++ <object class="GtkHBox" id="hbox45">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label92">
++ <object class="GtkLabel" id="label92">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -792,21 +929,21 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkTable" id="table1">
++ <object class="GtkTable" id="table1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="n_rows">6</property>
+ <property name="n_columns">2</property>
+ <property name="row_spacing">3</property>
+ <child>
+- <widget class="GtkFontButton" id="font_inactive">
++ <object class="GtkFontButton" id="font_inactive">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_font">True</property>
+- <signal name="font_set" handler="on_font_inactive_font_set"/>
+- </widget>
++ <signal handler="on_font_inactive_font_set" name="font_set"/>
++ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+@@ -817,14 +954,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkFontButton" id="font_menu_header">
++ <object class="GtkFontButton" id="font_menu_header">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_font">True</property>
+- <signal name="font_set" handler="on_font_menu_header_font_set"/>
+- </widget>
++ <signal handler="on_font_menu_header_font_set" name="font_set"/>
++ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+@@ -835,14 +972,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkFontButton" id="font_menu_item">
++ <object class="GtkFontButton" id="font_menu_item">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_font">True</property>
+- <signal name="font_set" handler="on_font_menu_item_font_set"/>
+- </widget>
++ <signal handler="on_font_menu_item_font_set" name="font_set"/>
++ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+@@ -853,28 +990,28 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label94">
++ <object class="GtkLabel" id="label94">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">_Active window title: </property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">font_active</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"/>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label95">
++ <object class="GtkLabel" id="label95">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">_Inactive window title: </property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">font_inactive</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+@@ -883,14 +1020,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label96">
++ <object class="GtkLabel" id="label96">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Menu _header: </property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">font_menu_header</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+@@ -899,14 +1036,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label97">
++ <object class="GtkLabel" id="label97">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">_Menu Item: </property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">font_menu_item</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
+@@ -915,13 +1052,13 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label98">
++ <object class="GtkLabel" id="label98">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Active _On-screen display: </property>
+ <property name="use_underline">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
+@@ -930,14 +1067,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkFontButton" id="font_active">
++ <object class="GtkFontButton" id="font_active">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_font">True</property>
+- <signal name="font_set" handler="on_font_active_font_set"/>
+- </widget>
++ <signal handler="on_font_active_font_set" name="font_set"/>
++ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+@@ -945,13 +1082,13 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label240">
++ <object class="GtkLabel" id="label240">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">1</property>
+ <property name="label" translatable="yes">Inactive O_n-screen display: </property>
+ <property name="use_underline">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
+@@ -960,14 +1097,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkFontButton" id="font_active_display">
++ <object class="GtkFontButton" id="font_active_display">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_font">True</property>
+- <signal name="font_set" handler="on_font_active_display_font_set"/>
+- </widget>
++ <signal handler="on_font_active_display_font_set" name="font_set"/>
++ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+@@ -978,14 +1115,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkFontButton" id="font_inactive_display">
++ <object class="GtkFontButton" id="font_inactive_display">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_font">True</property>
+- <signal name="font_set" handler="on_font_inactive_display_font_set"/>
+- </widget>
++ <signal handler="on_font_inactive_display_font_set" name="font_set"/>
++ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+@@ -995,66 +1132,62 @@ Omnipresent (On all desktops)</property>
+ <property name="y_options"/>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="position">1</property>
+- </packing>
++ </object>
+ </child>
+- <child>
+- <widget class="GtkLabel" id="label84">
++ <child type="tab">
++ <object class="GtkLabel" id="label84">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">6</property>
+ <property name="ypad">8</property>
+ <property name="label" translatable="yes">Appearance</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="position">1</property>
+ <property name="tab_fill">False</property>
+- <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox12">
++ <object class="GtkVBox" id="vbox12">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">18</property>
+ <child>
+- <widget class="GtkVBox" id="vbox65">
++ <object class="GtkVBox" id="vbox65">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label164">
++ <object class="GtkLabel" id="label164">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Focusing Windows&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1062,15 +1195,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox89">
++ <object class="GtkHBox" id="hbox89">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label165">
++ <object class="GtkLabel" id="label165">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1078,12 +1211,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox66">
++ <object class="GtkVBox" id="vbox66">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkCheckButton" id="focus_new">
++ <object class="GtkCheckButton" id="focus_new">
+ <property name="label" translatable="yes">Focus _new windows when they appear</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -1091,29 +1224,29 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_focus_new_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_focus_new_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -1121,18 +1254,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox34">
++ <object class="GtkVBox" id="vbox34">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label82">
++ <object class="GtkLabel" id="label82">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Placing Windows&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1140,15 +1273,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox40">
++ <object class="GtkHBox" id="hbox40">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label83">
++ <object class="GtkLabel" id="label83">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1156,12 +1289,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox35">
++ <object class="GtkVBox" id="vbox35">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkCheckButton" id="place_mouse">
++ <object class="GtkCheckButton" id="place_mouse">
+ <property name="label" translatable="yes">_Place new windows under the mouse pointer</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -1169,8 +1302,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_place_mouse_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_place_mouse_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1181,19 +1314,19 @@ Omnipresent (On all desktops)</property>
+ <placeholder/>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox107">
++ <object class="GtkHBox" id="hbox107">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+- <widget class="GtkLabel" id="label220">
++ <object class="GtkLabel" id="label220">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Prefer to place new windows _on:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">place_active_popup</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1201,84 +1334,46 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkOptionMenu" id="place_active_popup">
++ <object class="GtkComboBoxText" id="place_active_popup">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+- <child>
+- <widget class="GtkMenu" id="menu13">
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkMenuItem" id="menuitem8">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">The primary monitor</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_place_active_popup_primary_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="menuitem2">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">The active monitor</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_place_active_popup_active_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="menuitem4">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">The monitor with the mouse</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_place_active_popup_mouse_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="menuitem1">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">All monitors</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_place_active_popup_all_activate"/>
+- </widget>
+- </child>
+- </widget>
+- </child>
+- </widget>
++ <items>
++ <item translatable="yes">The primary monitor</item>
++ <item translatable="yes">The active monitor</item>
++ <item translatable="yes">The monitor with the mouse</item>
++ <item translatable="yes">All monitors</item>
++ </items>
++ <signal handler="on_place_active_popup_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -1286,18 +1381,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox86">
++ <object class="GtkVBox" id="vbox86">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label243">
++ <object class="GtkLabel" id="label243">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Primary Monitor&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1305,15 +1400,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox120">
++ <object class="GtkHBox" id="hbox120">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label244">
++ <object class="GtkLabel" id="label244">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1321,16 +1416,16 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox87">
++ <object class="GtkVBox" id="vbox87">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkHBox" id="hbox122">
++ <object class="GtkHBox" id="hbox122">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label246">
++ <object class="GtkLabel" id="label246">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+@@ -1338,14 +1433,14 @@ Omnipresent (On all desktops)</property>
+ <property name="label" translatable="yes">The primary monitor is where Openbox will place dialogs, such as the one used for cycling windows.</property>
+ <property name="wrap">True</property>
+ <property name="width_chars">0</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1353,19 +1448,19 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox121">
++ <object class="GtkHBox" id="hbox121">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label245">
++ <object class="GtkLabel" id="label245">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Primary _monitor:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">primary_monitor_popup</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1373,70 +1468,41 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkOptionMenu" id="primary_monitor_popup">
++ <object class="GtkComboBoxText" id="primary_monitor_popup">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+- <child>
+- <widget class="GtkMenu" id="menu16">
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkMenuItem" id="item1">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Fixed Monitor</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_primary_monitor_fixed_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="active_monitor1">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Active Monitor</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_primary_monitor_active_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="monitor_with_mouse_pointer1">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Monitor With Mouse Pointer</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_primary_monitor_mouse_activate"/>
+- </widget>
+- </child>
+- </widget>
+- </child>
+- </widget>
++ <items>
++ <item translatable="yes">Fixed Monitor</item>
++ <item translatable="yes">Active Monitor</item>
++ <item translatable="yes">Monitor With Mouse Pointer</item>
++ </items>
++ <signal handler="on_primary_monitor_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox123">
++ <object class="GtkHBox" id="hbox123">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label249">
++ <object class="GtkLabel" id="label249">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1444,14 +1510,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label248">
++ <object class="GtkLabel" id="label248">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Fixed monitor:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">fixed_monitor</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1459,90 +1525,86 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="fixed_monitor">
++ <object class="GtkSpinButton" id="fixed_monitor">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">1 1 100 1 10 0</property>
++ <property name="adjustment">adjustment1</property>
+ <property name="climb_rate">1</property>
+- <signal name="value_changed" handler="on_fixed_monitor_value_changed"/>
+- </widget>
++ <signal handler="on_fixed_monitor_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="position">2</property>
+- </packing>
++ </object>
+ </child>
+- <child>
+- <widget class="GtkLabel" id="label22">
++ <child type="tab">
++ <object class="GtkLabel" id="label22">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">6</property>
+ <property name="ypad">8</property>
+ <property name="label" translatable="yes">Windows</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="position">2</property>
+ <property name="tab_fill">False</property>
+- <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox78">
++ <object class="GtkVBox" id="vbox78">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">18</property>
+ <child>
+- <widget class="GtkVBox" id="vbox14">
++ <object class="GtkVBox" id="vbox14">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label34">
++ <object class="GtkLabel" id="label34">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Moving and Resizing Windows&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1550,15 +1612,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox14">
++ <object class="GtkHBox" id="hbox14">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label168">
++ <object class="GtkLabel" id="label168">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1566,12 +1628,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox16">
++ <object class="GtkVBox" id="vbox16">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkCheckButton" id="resize_contents">
++ <object class="GtkCheckButton" id="resize_contents">
+ <property name="label" translatable="yes">Update the window contents while _resizing</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -1579,8 +1641,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_resize_contents_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_resize_contents_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1588,19 +1650,19 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox86">
++ <object class="GtkHBox" id="hbox86">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="drag_threshold_label">
++ <object class="GtkLabel" id="drag_threshold_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Drag _threshold distance:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">drag_threshold</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1608,18 +1670,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="drag_threshold">
++ <object class="GtkSpinButton" id="drag_threshold">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">1 1 100 1 10 0</property>
++ <property name="adjustment">adjustment2</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_drag_threshold_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_drag_threshold_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -1627,38 +1689,38 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label160">
++ <object class="GtkLabel" id="label160">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">px</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox17">
++ <object class="GtkHBox" id="hbox17">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="resist_window_label">
++ <object class="GtkLabel" id="resist_window_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Amount of resistance against other _windows:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">resist_window</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1666,18 +1728,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="resist_window">
++ <object class="GtkSpinButton" id="resist_window">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">20 0 100 1 10 0</property>
++ <property name="adjustment">adjustment3</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_resist_window_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_resist_window_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -1685,18 +1747,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label67">
++ <object class="GtkLabel" id="label67">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">px</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -1704,19 +1766,19 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox18">
++ <object class="GtkHBox" id="hbox18">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="resist_edge_label">
++ <object class="GtkLabel" id="resist_edge_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Amount of resistance against screen _edges:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">resist_edge</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1724,18 +1786,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="resist_edge">
++ <object class="GtkSpinButton" id="resist_edge">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">1 0 100 1 10 0</property>
++ <property name="adjustment">adjustment4</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_resist_edge_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_resist_edge_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -1743,18 +1805,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label68">
++ <object class="GtkLabel" id="label68">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">px</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -1762,7 +1824,7 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkCheckButton" id="warp_edge">
++ <object class="GtkCheckButton" id="warp_edge">
+ <property name="label" translatable="yes">_Switch desktops when moving a window past the screen edge</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -1770,8 +1832,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_warp_edge_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_warp_edge_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1779,15 +1841,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox103">
++ <object class="GtkHBox" id="hbox103">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label214">
++ <object class="GtkLabel" id="label214">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1795,19 +1857,19 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox104">
++ <object class="GtkHBox" id="hbox104">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label215">
++ <object class="GtkLabel" id="label215">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Amount of time to wait before switching:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">warp_edge_time</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1815,18 +1877,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="warp_edge_time">
++ <object class="GtkSpinButton" id="warp_edge_time">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">100 100 10000 10 10 0</property>
++ <property name="adjustment">adjustment5</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_warp_edge_time_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_warp_edge_time_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -1834,46 +1896,46 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label216">
++ <object class="GtkLabel" id="label216">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">ms</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -1881,18 +1943,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox79">
++ <object class="GtkVBox" id="vbox79">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label222">
++ <object class="GtkLabel" id="label222">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Information Dialog&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1900,24 +1962,24 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox80">
++ <object class="GtkVBox" id="vbox80">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkHBox" id="hbox90">
++ <object class="GtkHBox" id="hbox90">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+- <widget class="GtkLabel" id="label166">
++ <object class="GtkLabel" id="label166">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Show _information dialog:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">resize_popup</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1925,69 +1987,40 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkOptionMenu" id="resize_popup">
++ <object class="GtkComboBoxText" id="resize_popup">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+- <child>
+- <widget class="GtkMenu" id="menu11">
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkMenuItem" id="resize_popup_nonpixel">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">When resizing terminal windows</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_resize_popup_nonpixel_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="resize_popup_always">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Always</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_resize_popup_always_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="resize_popup_never">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Never</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_resize_popup_never_activate"/>
+- </widget>
+- </child>
+- </widget>
+- </child>
+- </widget>
++ <items>
++ <item translatable="yes">When resizing terminal windows</item>
++ <item translatable="yes">Always</item>
++ <item translatable="yes">Never</item>
++ </items>
++ <signal handler="on_resize_popup_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox108">
++ <object class="GtkHBox" id="hbox108">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label35">
++ <object class="GtkLabel" id="label35">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -1995,24 +2028,24 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox81">
++ <object class="GtkVBox" id="vbox81">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkHBox" id="hbox91">
++ <object class="GtkHBox" id="hbox91">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+- <widget class="GtkLabel" id="label167">
++ <object class="GtkLabel" id="label167">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Information dialog's _position:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">resize_position</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2020,69 +2053,40 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkOptionMenu" id="resize_position">
++ <object class="GtkComboBoxText" id="resize_position">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+- <child>
+- <widget class="GtkMenu" id="menu12">
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkMenuItem" id="resize_position_center">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Centered on the window</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_resize_position_center_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="resize_position_top">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Above the window</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_resize_position_top_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="fixed_position_on_screen1">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Fixed position on screen</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_resize_position_fixed_activate"/>
+- </widget>
+- </child>
+- </widget>
+- </child>
+- </widget>
++ <items>
++ <item translatable="yes">Centered on the window</item>
++ <item translatable="yes">Above the window</item>
++ <item translatable="yes">Fixed position on screen</item>
++ </items>
++ <signal handler="on_resize_position_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox109">
++ <object class="GtkHBox" id="hbox109">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label223">
++ <object class="GtkLabel" id="label223">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2090,24 +2094,24 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox82">
++ <object class="GtkVBox" id="vbox82">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkHBox" id="hbox110">
++ <object class="GtkHBox" id="hbox110">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+- <widget class="GtkLabel" id="label224">
++ <object class="GtkLabel" id="label224">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Fixed _x position:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">fixed_x_popup</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2115,46 +2119,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkOptionMenu" id="fixed_x_popup">
++ <object class="GtkComboBoxText" id="fixed_x_popup">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+- <child>
+- <widget class="GtkMenu" id="menu14">
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkMenuItem" id="menuitem3">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Centered</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_fixed_x_position_center_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="from_left_edge1">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">From left edge</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_fixed_x_position_left_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="from_right_edge1">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">From right edge</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_fixed_x_position_right_activate"/>
+- </widget>
+- </child>
+- </widget>
+- </child>
+- </widget>
++ <items>
++ <item translatable="yes">Centered</item>
++ <item translatable="yes">From left edge</item>
++ <item translatable="yes">From right edge</item>
++ </items>
++ <signal handler="on_fixed_x_position_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2162,23 +2137,23 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox112">
++ <object class="GtkHBox" id="hbox112">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkSpinButton" id="fixed_x_pos">
++ <object class="GtkSpinButton" id="fixed_x_pos">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">1 0 1000 1 10 0</property>
++ <property name="adjustment">adjustment6</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_fixed_x_pos_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_fixed_x_pos_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -2186,45 +2161,45 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label227">
++ <object class="GtkLabel" id="label227">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">px</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox111">
++ <object class="GtkHBox" id="hbox111">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+- <widget class="GtkLabel" id="label225">
++ <object class="GtkLabel" id="label225">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Fixed _y position:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">fixed_y_popup</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2232,46 +2207,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkOptionMenu" id="fixed_y_popup">
++ <object class="GtkComboBoxText" id="fixed_y_popup">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+- <child>
+- <widget class="GtkMenu" id="menu15">
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkMenuItem" id="menuitem5">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Centered</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_fixed_y_position_center_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="menuitem6">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">From top edge</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_fixed_y_position_top_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="menuitem7">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">From bottom edge</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_fixed_y_position_bottom_activate"/>
+- </widget>
+- </child>
+- </widget>
+- </child>
+- </widget>
++ <items>
++ <item translatable="yes">Centered</item>
++ <item translatable="yes">From top edge</item>
++ <item translatable="yes">From bottom edge</item>
++ </items>
++ <signal handler="on_fixed_y_position_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2279,23 +2225,23 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox113">
++ <object class="GtkHBox" id="hbox113">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkSpinButton" id="fixed_y_pos">
++ <object class="GtkSpinButton" id="fixed_y_pos">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">1 0 1000 1 10 0</property>
++ <property name="adjustment">adjustment7</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_fixed_y_pos_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_fixed_y_pos_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -2303,112 +2249,108 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label228">
++ <object class="GtkLabel" id="label228">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">px</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="position">3</property>
+- </packing>
++ </object>
+ </child>
+- <child>
+- <widget class="GtkLabel" id="label221">
++ <child type="tab">
++ <object class="GtkLabel" id="label221">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">6</property>
+ <property name="ypad">8</property>
+ <property name="label" translatable="yes">Move &amp; Resize</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="position">3</property>
+ <property name="tab_fill">False</property>
+- <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox56">
++ <object class="GtkVBox" id="vbox56">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">18</property>
+ <child>
+- <widget class="GtkVBox" id="vbox13">
++ <object class="GtkVBox" id="vbox13">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label32">
++ <object class="GtkLabel" id="label32">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Focusing Windows&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2416,15 +2358,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox13">
++ <object class="GtkHBox" id="hbox13">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label33">
++ <object class="GtkLabel" id="label33">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2432,12 +2374,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox15">
++ <object class="GtkVBox" id="vbox15">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkCheckButton" id="focus_mouse">
++ <object class="GtkCheckButton" id="focus_mouse">
+ <property name="label" translatable="yes">_Focus windows when the mouse pointer moves over them</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -2445,8 +2387,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_focus_mouse_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_focus_mouse_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2454,15 +2396,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox32">
++ <object class="GtkHBox" id="hbox32">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label65">
++ <object class="GtkLabel" id="label65">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2470,12 +2412,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox25">
++ <object class="GtkVBox" id="vbox25">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkCheckButton" id="focus_notlast">
++ <object class="GtkCheckButton" id="focus_notlast">
+ <property name="label" translatable="yes">Move focus under the mouse when _switching desktops</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -2483,8 +2425,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_focus_notlast_toggled"/>
+- </widget>
++ <signal handler="on_focus_notlast_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2492,7 +2434,7 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkCheckButton" id="focus_under_mouse">
++ <object class="GtkCheckButton" id="focus_under_mouse">
+ <property name="label" translatable="yes">Move focus _under the mouse when the mouse is not moving</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -2500,8 +2442,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_focus_under_mouse_toggled"/>
+- </widget>
++ <signal handler="on_focus_under_mouse_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2509,7 +2451,7 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkCheckButton" id="focus_raise">
++ <object class="GtkCheckButton" id="focus_raise">
+ <property name="label" translatable="yes">_Raise windows when the mouse pointer moves over them</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -2517,8 +2459,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_focus_raise_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_focus_raise_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2526,18 +2468,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox16">
++ <object class="GtkHBox" id="hbox16">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="focus_delay_label">
++ <object class="GtkLabel" id="focus_delay_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Delay before focusing and raising windows:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">focus_delay</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2545,18 +2487,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="focus_delay">
++ <object class="GtkSpinButton" id="focus_delay">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">0 0 10000 10 10 0</property>
++ <property name="adjustment">adjustment8</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_focus_delay_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_focus_delay_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -2564,53 +2506,53 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="focus_delay_label_units">
++ <object class="GtkLabel" id="focus_delay_label_units">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">ms</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+- <property name="fill">False</property>
++ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -2618,18 +2560,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox61">
++ <object class="GtkVBox" id="vbox61">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label155">
++ <object class="GtkLabel" id="label155">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Titlebar&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2637,15 +2579,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox84">
++ <object class="GtkHBox" id="hbox84">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label156">
++ <object class="GtkLabel" id="label156">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2653,24 +2595,24 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox62">
++ <object class="GtkVBox" id="vbox62">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkHBox" id="hbox87">
++ <object class="GtkHBox" id="hbox87">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+- <widget class="GtkLabel" id="titlebar_doubleclick_label">
++ <object class="GtkLabel" id="titlebar_doubleclick_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Double click on the _titlebar:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">titlebar_doubleclick</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2678,63 +2620,43 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkOptionMenu" id="titlebar_doubleclick">
++ <object class="GtkComboBoxText" id="titlebar_doubleclick">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+- <child>
+- <widget class="GtkMenu" id="menu10">
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkMenuItem" id="titlebar_doubleclick_maximize">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Maximizes the window</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_titlebar_doubleclick_maximize_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="titlebar_doubleclick_shade">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Shades the window</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_titlebar_doubleclick_shade_activate"/>
+- </widget>
+- </child>
+- </widget>
+- </child>
+- </widget>
++ <items>
++ <item translatable="yes">Maximizes the window</item>
++ <item translatable="yes">Shades the window</item>
++ </items>
++ <signal handler="on_titlebar_doubleclick_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox85">
++ <object class="GtkHBox" id="hbox85">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="doubleclick_time_label">
++ <object class="GtkLabel" id="doubleclick_time_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Double click ti_me:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">doubleclick_time</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2742,18 +2664,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="doubleclick_time">
++ <object class="GtkSpinButton" id="doubleclick_time">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">0 0 10000 10 10 0</property>
++ <property name="adjustment">adjustment9</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_doubleclick_time_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_doubleclick_time_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -2761,39 +2683,39 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label158">
++ <object class="GtkLabel" id="label158">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">ms</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -2801,73 +2723,69 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox63">
++ <object class="GtkVBox" id="vbox63">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkHBox" id="hbox88">
++ <object class="GtkHBox" id="hbox88">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label162">
++ <object class="GtkLabel" id="label162">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+- <property name="expand">True</property>
++ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="position">4</property>
+- </packing>
++ </object>
+ </child>
+- <child>
+- <widget class="GtkLabel" id="label118">
++ <child type="tab">
++ <object class="GtkLabel" id="label118">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">6</property>
+ <property name="ypad">8</property>
+ <property name="label" translatable="yes">Mouse</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="position">4</property>
+ <property name="tab_fill">False</property>
+- <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox18">
++ <object class="GtkVBox" id="vbox18">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label51">
++ <object class="GtkLabel" id="label51">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Desktops&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2875,15 +2793,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox24">
++ <object class="GtkHBox" id="hbox24">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label52">
++ <object class="GtkLabel" id="label52">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2891,12 +2809,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox19">
++ <object class="GtkVBox" id="vbox19">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkCheckButton" id="desktop_popup">
++ <object class="GtkCheckButton" id="desktop_popup">
+ <property name="label" translatable="yes">_Show a notification when switching desktops</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -2904,8 +2822,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_desktop_popup_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_desktop_popup_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2913,15 +2831,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox105">
++ <object class="GtkHBox" id="hbox105">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label217">
++ <object class="GtkLabel" id="label217">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2929,19 +2847,19 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox106">
++ <object class="GtkHBox" id="hbox106">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label218">
++ <object class="GtkLabel" id="label218">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Amount of time to show the notification for:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">desktop_popup_time</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -2949,18 +2867,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="desktop_popup_time">
++ <object class="GtkSpinButton" id="desktop_popup_time">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">1 1 10000 10 10 0</property>
++ <property name="adjustment">adjustment10</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_desktop_popup_time_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_desktop_popup_time_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -2968,25 +2886,25 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label219">
++ <object class="GtkLabel" id="label219">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">ms</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -2994,18 +2912,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox25">
++ <object class="GtkHBox" id="hbox25">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label53">
++ <object class="GtkLabel" id="label53">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Number of desktops: </property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">desktop_num</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3013,25 +2931,25 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="desktop_num">
++ <object class="GtkSpinButton" id="desktop_num">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">1 1 100 1 10 0</property>
++ <property name="adjustment">adjustment11</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_desktop_num_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_desktop_num_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3039,14 +2957,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label54">
++ <object class="GtkLabel" id="label54">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Desktop names:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">desktop_names</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3054,74 +2972,70 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkScrolledWindow" id="scrolledwindow1">
++ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">never</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">in</property>
+ <child>
+- <widget class="GtkTreeView" id="desktop_names">
++ <object class="GtkTreeView" id="desktop_names">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+- </widget>
++ </object>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="position">5</property>
+- </packing>
++ </object>
+ </child>
+- <child>
+- <widget class="GtkLabel" id="label31">
++ <child type="tab">
++ <object class="GtkLabel" id="label31">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">6</property>
+ <property name="ypad">8</property>
+ <property name="label" translatable="yes">Desktops</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="position">5</property>
+ <property name="tab_fill">False</property>
+- <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox71">
++ <object class="GtkVBox" id="vbox71">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label173">
++ <object class="GtkLabel" id="label173">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Desktop Margins&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3129,15 +3043,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox94">
++ <object class="GtkHBox" id="hbox94">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label174">
++ <object class="GtkLabel" id="label174">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3145,19 +3059,19 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox72">
++ <object class="GtkVBox" id="vbox72">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label212">
++ <object class="GtkLabel" id="label212">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0</property>
+ <property name="label" translatable="yes">Desktop margins are reserved areas on the edge of your screen. New windows will not be placed within a margin, and maximized windows will not cover them.</property>
+ <property name="wrap">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3165,14 +3079,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox98">
++ <object class="GtkHBox" id="hbox98">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label209">
++ <object class="GtkLabel" id="label209">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3180,14 +3094,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox77">
++ <object class="GtkVBox" id="vbox77">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label210">
++ <object class="GtkLabel" id="label210">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3195,18 +3109,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox75">
++ <object class="GtkVBox" id="vbox75">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label195">
++ <object class="GtkLabel" id="label195">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="ypad">4</property>
+ <property name="label" translatable="yes">_Top</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">margins_top</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3214,15 +3128,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox101">
++ <object class="GtkHBox" id="hbox101">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label196">
++ <object class="GtkLabel" id="label196">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3230,18 +3144,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="margins_top">
++ <object class="GtkSpinButton" id="margins_top">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">20 0 10000 1 10 0</property>
++ <property name="adjustment">adjustment12</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_margins_top_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_margins_top_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3249,11 +3163,11 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label197">
++ <object class="GtkLabel" id="label197">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">px</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3261,31 +3175,31 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label198">
++ <object class="GtkLabel" id="label198">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3293,17 +3207,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label208">
++ <object class="GtkLabel" id="label208">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3311,14 +3225,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox95">
++ <object class="GtkHBox" id="hbox95">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label179">
++ <object class="GtkLabel" id="label179">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3326,14 +3240,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox73">
++ <object class="GtkVBox" id="vbox73">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label181">
++ <object class="GtkLabel" id="label181">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3341,14 +3255,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label176">
++ <object class="GtkLabel" id="label176">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="ypad">4</property>
+ <property name="label" translatable="yes">_Left</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">margins_left</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3356,15 +3270,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox96">
++ <object class="GtkHBox" id="hbox96">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label186">
++ <object class="GtkLabel" id="label186">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3372,18 +3286,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="margins_left">
++ <object class="GtkSpinButton" id="margins_left">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">20 0 10000 1 10 0</property>
++ <property name="adjustment">adjustment13</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_margins_left_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_margins_left_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3391,11 +3305,11 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label178">
++ <object class="GtkLabel" id="label178">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">px</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3403,17 +3317,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label187">
++ <object class="GtkLabel" id="label187">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3421,17 +3335,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label182">
++ <object class="GtkLabel" id="label182">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3439,12 +3353,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkImage" id="image3">
++ <object class="GtkImage" id="image3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="pixel_size">150</property>
+ <property name="icon_name">video-display</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3452,14 +3366,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox74">
++ <object class="GtkVBox" id="vbox74">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label188">
++ <object class="GtkLabel" id="label188">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3467,14 +3381,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label189">
++ <object class="GtkLabel" id="label189">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="ypad">4</property>
+ <property name="label" translatable="yes">_Right</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">margins_right</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3482,15 +3396,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox97">
++ <object class="GtkHBox" id="hbox97">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label190">
++ <object class="GtkLabel" id="label190">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3498,18 +3412,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="margins_right">
++ <object class="GtkSpinButton" id="margins_right">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">20 0 10000 1 10 0</property>
++ <property name="adjustment">adjustment14</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_margins_right_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_margins_right_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3517,11 +3431,11 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label191">
++ <object class="GtkLabel" id="label191">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">px</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3529,17 +3443,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label192">
++ <object class="GtkLabel" id="label192">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3547,17 +3461,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label193">
++ <object class="GtkLabel" id="label193">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3565,17 +3479,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label180">
++ <object class="GtkLabel" id="label180">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3583,14 +3497,14 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox100">
++ <object class="GtkHBox" id="hbox100">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label206">
++ <object class="GtkLabel" id="label206">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3598,18 +3512,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox76">
++ <object class="GtkVBox" id="vbox76">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label201">
++ <object class="GtkLabel" id="label201">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="ypad">4</property>
+ <property name="label" translatable="yes">_Bottom</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">margins_bottom</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3617,15 +3531,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox102">
++ <object class="GtkHBox" id="hbox102">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label202">
++ <object class="GtkLabel" id="label202">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3633,18 +3547,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="margins_bottom">
++ <object class="GtkSpinButton" id="margins_bottom">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">20 0 10000 1 10 0</property>
++ <property name="adjustment">adjustment15</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_margins_bottom_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_margins_bottom_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3652,11 +3566,11 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label203">
++ <object class="GtkLabel" id="label203">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">px</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3664,17 +3578,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label204">
++ <object class="GtkLabel" id="label204">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3682,17 +3596,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label205">
++ <object class="GtkLabel" id="label205">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3700,17 +3614,17 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label207">
++ <object class="GtkLabel" id="label207">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -3718,69 +3632,65 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label211">
++ <object class="GtkLabel" id="label211">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="position">6</property>
+- </packing>
++ </object>
+ </child>
+- <child>
+- <widget class="GtkLabel" id="label172">
++ <child type="tab">
++ <object class="GtkLabel" id="label172">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">6</property>
+ <property name="ypad">8</property>
+ <property name="label" translatable="yes">Margins</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="position">6</property>
+ <property name="tab_fill">False</property>
+- <property name="type">tab</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox26">
++ <object class="GtkVBox" id="vbox26">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="border_width">12</property>
+ <property name="spacing">18</property>
+ <child>
+- <widget class="GtkVBox" id="vbox84">
++ <object class="GtkVBox" id="vbox84">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label234">
++ <object class="GtkLabel" id="label234">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Dock&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3788,15 +3698,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox118">
++ <object class="GtkHBox" id="hbox118">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label238">
++ <object class="GtkLabel" id="label238">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3804,7 +3714,7 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="label239">
++ <object class="GtkLabel" id="label239">
+ <property name="width_request">490</property>
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+@@ -3812,21 +3722,21 @@ Omnipresent (On all desktops)</property>
+ <property name="yalign">0</property>
+ <property name="label" translatable="yes">The dock is a special container for "dockapps", or dock applications. It is not visible on screen until a dockapp is run. Dockapps can be used to show things like a clock, or to provide you with a system tray.</property>
+ <property name="wrap">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -3834,18 +3744,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox27">
++ <object class="GtkVBox" id="vbox27">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label70">
++ <object class="GtkLabel" id="label70">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Position&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3853,15 +3763,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox33">
++ <object class="GtkHBox" id="hbox33">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label71">
++ <object class="GtkLabel" id="label71">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3869,24 +3779,24 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox30">
++ <object class="GtkVBox" id="vbox30">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkHBox" id="hbox19">
++ <object class="GtkHBox" id="hbox19">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+- <widget class="GtkLabel" id="dock_position_label">
++ <object class="GtkLabel" id="dock_position_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Position:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">dock_position</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -3894,113 +3804,30 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkOptionMenu" id="dock_position">
++ <object class="GtkComboBoxText" id="dock_position">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+- <child>
+- <widget class="GtkMenu" id="menu5">
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkMenuItem" id="top_left">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Top Left</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_top_left_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="top">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Top</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_top_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="top_right">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Top Right</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_top_right_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="left">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Left</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_left_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="right">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Right</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_right_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="bottom_left">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Bottom Left</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_bottom_left_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="bottom">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Bottom</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_bottom_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="bottom_right">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Bottom Right</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_bottom_right_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="floating">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Floating</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_floating_activate"/>
+- </widget>
+- </child>
+- </widget>
+- </child>
+- </widget>
++ <items>
++ <item translatable="yes">Top Left</item>
++ <item translatable="yes">Top</item>
++ <item translatable="yes">Top Right</item>
++ <item translatable="yes">Left</item>
++ <item translatable="yes">Right</item>
++ <item translatable="yes">Bottom Left</item>
++ <item translatable="yes">Bottom</item>
++ <item translatable="yes">Bottom Right</item>
++ <item translatable="yes">Floating</item>
++ </items>
++ <signal handler="on_dock_position_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4008,15 +3835,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox36">
++ <object class="GtkHBox" id="hbox36">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label76">
++ <object class="GtkLabel" id="label76">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4024,18 +3851,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox20">
++ <object class="GtkHBox" id="hbox20">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="dock_float_label">
++ <object class="GtkLabel" id="dock_float_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">_Floating position:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">dock_float_x</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4043,18 +3870,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="dock_float_x">
++ <object class="GtkSpinButton" id="dock_float_x">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">1 0 10000 1 10 0</property>
++ <property name="adjustment">adjustment16</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_dock_float_x_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_dock_float_x_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -4062,11 +3889,11 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="dock_float_label_x">
++ <object class="GtkLabel" id="dock_float_label_x">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">x</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4074,32 +3901,32 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="dock_float_y">
++ <object class="GtkSpinButton" id="dock_float_y">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">1 0 10000 1 10 0</property>
++ <property name="adjustment">adjustment17</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_dock_float_y_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_dock_float_y_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4107,15 +3934,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox58">
++ <object class="GtkHBox" id="hbox58">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label108">
++ <object class="GtkLabel" id="label108">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4123,7 +3950,7 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkCheckButton" id="dock_nostrut">
++ <object class="GtkCheckButton" id="dock_nostrut">
+ <property name="label" translatable="yes">Allow _windows to be placed within the dock's area</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -4131,15 +3958,15 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_dock_nostrut_toggled"/>
+- </widget>
++ <signal handler="on_dock_nostrut_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -4147,19 +3974,19 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox38">
++ <object class="GtkHBox" id="hbox38">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">12</property>
+ <child>
+- <widget class="GtkLabel" id="dock_direction_label">
++ <object class="GtkLabel" id="dock_direction_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Orientation: </property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">dock_direction</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4167,64 +3994,44 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkOptionMenu" id="dock_direction">
++ <object class="GtkComboBoxText" id="dock_direction">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+- <child>
+- <widget class="GtkMenu" id="menu7">
+- <property name="can_focus">False</property>
+- <child>
+- <widget class="GtkMenuItem" id="vertical">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Vertical</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_vertical_activate"/>
+- </widget>
+- </child>
+- <child>
+- <widget class="GtkMenuItem" id="horizontal">
+- <property name="visible">True</property>
+- <property name="can_focus">False</property>
+- <property name="use_action_appearance">False</property>
+- <property name="label" translatable="yes">Horizontal</property>
+- <property name="use_underline">True</property>
+- <signal name="activate" handler="on_dock_horizontal_activate"/>
+- </widget>
+- </child>
+- </widget>
+- </child>
+- </widget>
++ <items>
++ <item translatable="yes">Vertical</item>
++ <item translatable="yes">Horizontal</item>
++ </items>
++ <signal handler="on_dock_direction_changed" name="changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4232,18 +4039,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox28">
++ <object class="GtkVBox" id="vbox28">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label74">
++ <object class="GtkLabel" id="label74">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Stacking&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4251,15 +4058,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox34">
++ <object class="GtkHBox" id="hbox34">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label72">
++ <object class="GtkLabel" id="label72">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4267,12 +4074,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox31">
++ <object class="GtkVBox" id="vbox31">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkRadioButton" id="dock_stack_top">
++ <object class="GtkRadioButton" id="dock_stack_top">
+ <property name="label" translatable="yes">Keep dock _above other windows</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -4280,8 +4087,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_dock_stacking_top_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_dock_stacking_top_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4289,7 +4096,7 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkRadioButton" id="dock_stack_normal">
++ <object class="GtkRadioButton" id="dock_stack_normal">
+ <property name="label" translatable="yes">A_llow dock to be both above and below windows</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -4298,8 +4105,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">dock_stack_top</property>
+- <signal name="toggled" handler="on_dock_stacking_normal_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_dock_stacking_normal_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4307,7 +4114,7 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkRadioButton" id="dock_stack_bottom">
++ <object class="GtkRadioButton" id="dock_stack_bottom">
+ <property name="label" translatable="yes">Keep dock _below other windows</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -4316,29 +4123,29 @@ Omnipresent (On all desktops)</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ <property name="group">dock_stack_top</property>
+- <signal name="toggled" handler="on_dock_stacking_bottom_toggled" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_dock_stacking_bottom_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4346,18 +4153,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox29">
++ <object class="GtkVBox" id="vbox29">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="label75">
++ <object class="GtkLabel" id="label75">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">&lt;span weight="bold"&gt;Hiding&lt;/span&gt;</property>
+ <property name="use_markup">True</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4365,15 +4172,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox35">
++ <object class="GtkHBox" id="hbox35">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label73">
++ <object class="GtkLabel" id="label73">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4381,12 +4188,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkVBox" id="vbox32">
++ <object class="GtkVBox" id="vbox32">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkCheckButton" id="dock_hide">
++ <object class="GtkCheckButton" id="dock_hide">
+ <property name="label" translatable="yes">_Hide off screen</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -4394,8 +4201,8 @@ Omnipresent (On all desktops)</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+- <signal name="toggled" handler="on_dock_hide_toggled"/>
+- </widget>
++ <signal handler="on_dock_hide_toggled" name="toggled"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4403,15 +4210,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox37">
++ <object class="GtkHBox" id="hbox37">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label77">
++ <object class="GtkLabel" id="label77">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4419,19 +4226,19 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox23">
++ <object class="GtkHBox" id="hbox23">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="dock_hide_label">
++ <object class="GtkLabel" id="dock_hide_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">_Delay before hiding:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">dock_hide_delay</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4439,18 +4246,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="dock_hide_delay">
++ <object class="GtkSpinButton" id="dock_hide_delay">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">300 0 10000 10 10 0</property>
++ <property name="adjustment">adjustment18</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_dock_hide_delay_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_dock_hide_delay_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -4458,25 +4265,25 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="dock_hide_label_units">
++ <object class="GtkLabel" id="dock_hide_label_units">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">ms</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -4484,15 +4291,15 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox56">
++ <object class="GtkHBox" id="hbox56">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkLabel" id="label107">
++ <object class="GtkLabel" id="label107">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label"> </property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4500,19 +4307,19 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox57">
++ <object class="GtkHBox" id="hbox57">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="spacing">6</property>
+ <child>
+- <widget class="GtkLabel" id="dock_show_label">
++ <object class="GtkLabel" id="dock_show_label">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Delay before _showing:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">dock_show_delay</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+@@ -4520,18 +4327,18 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkSpinButton" id="dock_show_delay">
++ <object class="GtkSpinButton" id="dock_show_delay">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="primary_icon_activatable">False</property>
+ <property name="secondary_icon_activatable">False</property>
+ <property name="primary_icon_sensitive">True</property>
+ <property name="secondary_icon_sensitive">True</property>
+- <property name="adjustment">300 0 10000 10 10 0</property>
++ <property name="adjustment">adjustment19</property>
+ <property name="climb_rate">1</property>
+ <property name="numeric">True</property>
+- <signal name="value_changed" handler="on_dock_show_delay_value_changed" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_dock_show_delay_value_changed" name="value_changed"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+@@ -4539,73 +4346,69 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkLabel" id="dock_show_label_units">
++ <object class="GtkLabel" id="dock_show_label_units">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">ms</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+- </widget>
+- <packing>
+- <property name="position">7</property>
+- </packing>
++ </object>
+ </child>
+- <child>
+- <widget class="GtkLabel" id="label41">
++ <child type="tab">
++ <object class="GtkLabel" id="label41">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="xalign">0</property>
+ <property name="xpad">6</property>
+ <property name="ypad">8</property>
+ <property name="label" translatable="yes">Dock</property>
+- </widget>
++ </object>
+ <packing>
+ <property name="position">7</property>
+ <property name="tab_fill">False</property>
+- <property name="type">tab</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -4613,16 +4416,16 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHBox" id="hbox39">
++ <object class="GtkHBox" id="hbox39">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+- <widget class="GtkHButtonBox" id="hbuttonbox1">
++ <object class="GtkHButtonBox" id="hbuttonbox1">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">start</property>
+ <child>
+- <widget class="GtkButton" id="about">
++ <object class="GtkButton" id="about">
+ <property name="label" translatable="yes">Abo_ut</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -4630,15 +4433,15 @@ Omnipresent (On all desktops)</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+- <signal name="clicked" handler="on_about_clicked" after="yes"/>
+- </widget>
++ <signal after="yes" handler="on_about_clicked" name="clicked"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+@@ -4646,12 +4449,12 @@ Omnipresent (On all desktops)</property>
+ </packing>
+ </child>
+ <child>
+- <widget class="GtkHButtonBox" id="hbuttonbox2">
++ <object class="GtkHButtonBox" id="hbuttonbox3">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="layout_style">end</property>
+ <child>
+- <widget class="GtkButton" id="close">
++ <object class="GtkButton" id="close">
+ <property name="label">gtk-close</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+@@ -4659,29 +4462,29 @@ Omnipresent (On all desktops)</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_stock">True</property>
+- <signal name="clicked" handler="on_close_clicked"/>
+- </widget>
++ <signal handler="on_close_clicked" name="clicked"/>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+- </widget>
++ </object>
+ </child>
+- </widget>
+-</glade-interface>
++ </object>
++</interface>
+diff --git a/src/preview.c b/src/preview.c
+index 36fc94a..f52bb32 100644
+--- a/src/preview.c
++++ b/src/preview.c
+@@ -54,7 +54,7 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ RrAppearance *bullet; /* for submenu */
+
+ GdkPixmap *pixmap;
+- GdkPixbuf *pixbuf;
++ GdkPixbuf *pixbuf, *tmp_pixbuf;
+
+ /* width and height of the whole menu */
+ gint width, height;
+@@ -104,6 +104,7 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ /* set border */
+ pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, FALSE, 8, width, height);
+ gdk_pixbuf_fill(pixbuf, rr_color_pixel(theme->menu_border_color));
++ tmp_pixbuf = gdk_pixbuf_copy(pixbuf);
+
+ /* menu appears after inside the border */
+ x = y = theme->mbwidth;
+@@ -126,9 +127,11 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ theme_pixmap_paint(title_text, bw, title_h);
+
+ pixmap = gdk_pixmap_foreign_new(title_text->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y, bw, title_h);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0,
++ bw, title_h);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, bw, title_h, pixbuf, x, y);
+
+ y += title_h + theme->mbwidth;
+
+@@ -141,9 +144,11 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ /* draw background for normal entry */
+ theme_pixmap_paint(background, bw, bh);
+ pixmap = gdk_pixmap_foreign_new(background->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y, bw, bh);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0,
++ bw, bh);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, bw, bh, pixbuf, x, y);
+
+ /* draw normal entry */
+ normal->surface.parent = background;
+@@ -152,10 +157,12 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ RrMinSize(normal, &tw, &th);
+ theme_pixmap_paint(normal, tw, th);
+ pixmap = gdk_pixmap_foreign_new(normal->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x + PADDING, y + PADDING,
+- tw, th);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0,
++ tw, th);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, tw, th, pixbuf,
++ x + PADDING, y + PADDING);
+
+ /* draw bullet */
+ RrMinSize(normal, &tw, &th);
+@@ -164,12 +171,12 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ bullet->surface.parenty = PADDING;
+ theme_pixmap_paint(bullet, th, th);
+ pixmap = gdk_pixmap_foreign_new(bullet->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0,
+- width - theme->mbwidth - th,
+- y + PADDING,
+- th, th);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0,
++ th, th);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, th, th, pixbuf,
++ width - theme->mbwidth - th, y + PADDING);
+
+ y += th + 2*PADDING;
+
+@@ -179,10 +186,11 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ background->surface.parenty = y - theme->mbwidth;
+ theme_pixmap_paint(background, bw, bh);
+ pixmap = gdk_pixmap_foreign_new(background->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y,
+- bw, bh);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0,
++ bw, bh);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, bw, bh, pixbuf, x, y);
+
+ /* draw disabled entry */
+ RrMinSize(disabled, &tw, &th);
+@@ -191,10 +199,12 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ disabled->surface.parenty = PADDING;
+ theme_pixmap_paint(disabled, tw, th);
+ pixmap = gdk_pixmap_foreign_new(disabled->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x + PADDING, y + PADDING,
+- tw, th);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0,
++ tw, th);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, tw, th, pixbuf,
++ x + PADDING, y + PADDING);
+
+ y += th + 2*PADDING;
+
+@@ -206,10 +216,11 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+
+ theme_pixmap_paint(background, bw, bh);
+ pixmap = gdk_pixmap_foreign_new(background->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y,
+- bw, bh);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0,
++ bw, bh);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, bw, bh, pixbuf, x, y);
+
+ /* draw selected entry */
+ RrMinSize(selected, &tw, &th);
+@@ -218,10 +229,13 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ selected->surface.parenty = PADDING;
+ theme_pixmap_paint(selected, tw, th);
+ pixmap = gdk_pixmap_foreign_new(selected->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x + PADDING, y + PADDING,
+- tw, th);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0,
++ tw, th);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, tw, th, pixbuf,
++ x + PADDING, y + PADDING);
++ g_object_unref(tmp_pixbuf);
+
+ return pixbuf;
+ }
+@@ -234,7 +248,7 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ RrAppearance *a;
+
+ GdkPixmap *pixmap;
+- GdkPixbuf *pixbuf = NULL;
++ GdkPixbuf *pixbuf = NULL, *tmp_pixbuf = NULL;
+ GdkPixbuf *scratch;
+
+ gint w, label_w, h, x, y;
+@@ -249,6 +263,7 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ rr_color_pixel(focus ?
+ theme->frame_focused_border_color :
+ theme->frame_unfocused_border_color));
++ tmp_pixbuf = gdk_pixbuf_copy(pixbuf);
+
+ /* title */
+ w = width - 2*theme->fbwidth;
+@@ -257,9 +272,10 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+
+ x = y = theme->fbwidth;
+ pixmap = gdk_pixmap_foreign_new(title->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0, w, h);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ /* calculate label width */
+ label_w = width - (theme->paddingx + theme->fbwidth + 1) * 2;
+@@ -302,9 +318,10 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+
+ theme_pixmap_paint(a, w, h);
+ pixmap = gdk_pixmap_foreign_new(a->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0, w, h);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ x += theme->button_size + 2 + theme->paddingx + 1;
+ } else if (*layout == 'L') { /* label */
+@@ -319,9 +336,10 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+
+ theme_pixmap_paint(a, w, h);
+ pixmap = gdk_pixmap_foreign_new(a->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0, w, h);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ x += w + theme->paddingx + 1;
+ } else {
+@@ -367,9 +385,10 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ pixmap = gdk_pixmap_foreign_new(a->pixmap);
+ /* use y + 1 because these buttons should be centered wrt the label
+ */
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y + 1, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0, w, h);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y + 1);
+
+ x += theme->button_size + theme->paddingx + 1;
+ }
+@@ -385,9 +404,10 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+
+ theme_pixmap_paint(handle, w, h);
+ pixmap = gdk_pixmap_foreign_new(handle->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0, w, h);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ /* openbox handles this drawing stuff differently (it fills the bottom
+ * of the window with the handle), so it avoids this bug where
+@@ -406,15 +426,17 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+
+ theme_pixmap_paint(a, w, h);
+ pixmap = gdk_pixmap_foreign_new(a->pixmap);
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0, w, h);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ /* right grip */
+ x = width - theme->fbwidth - theme->grip_width;
+- pixbuf = gdk_pixbuf_get_from_drawable(pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, x, y, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
++ gdk_colormap_get_system(),
++ 0, 0, 0, 0, w, h);
++ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+ }
+
+ /* title separator colour */
+@@ -452,6 +474,7 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ pixbuf,
+ x + theme->cbwidthx,
+ y + theme->cbwidthy);
++ g_object_unref(scratch);
+
+ return pixbuf;
+ }
+@@ -531,13 +554,16 @@ GdkPixbuf *preview_theme(const gchar *name, const gchar *titlelayout,
+
+ window = preview_window(theme, titlelayout, FALSE, window_w, h);
+ gdk_pixbuf_copy_area(window, 0, 0, window_w, h, preview, 20, 0);
++ g_object_unref(window);
+
+ window = preview_window(theme, titlelayout, TRUE, window_w, h);
+ gdk_pixbuf_copy_area(window, 0, 0, window_w, h,
+ preview, 10, theme->title_height + 5);
++ g_object_unref(window);
+
+ gdk_pixbuf_copy_area(menu, 0, 0, menu_w, h,
+ preview, 0, 2 * (theme->title_height + 5));
++ g_object_unref(menu);
+
+ RrThemeFree(theme);
+
+diff --git a/src/preview_update.c b/src/preview_update.c
+index 638f364..965431e 100644
+--- a/src/preview_update.c
++++ b/src/preview_update.c
+@@ -136,8 +136,10 @@ static gboolean update_theme_preview_iterate(gpointer data)
+ inactive_window_font, menu_title_font,
+ menu_item_font, osd_active_font,
+ osd_inactive_font);
+- if (preview)
++ if (preview) {
+ gtk_list_store_set(GTK_LIST_STORE(ls), &iter, 1, preview, -1);
++ g_object_unref(preview);
++ }
+
+ return TRUE;
+ }
+diff --git a/src/tree.c b/src/tree.c
+index cbe9b90..4ad4a38 100644
+--- a/src/tree.c
++++ b/src/tree.c
+@@ -114,7 +114,7 @@ void tree_apply()
+
+ ce.xclient.type = ClientMessage;
+ ce.xclient.message_type = gdk_x11_get_xatom_by_name("_OB_CONTROL");
+- ce.xclient.display = GDK_DISPLAY();
++ ce.xclient.display = gdk_x11_get_default_xdisplay();
+ ce.xclient.window = GDK_ROOT_WINDOW();
+ ce.xclient.format = 32;
+ ce.xclient.data.l[0] = 1; /* reconfigure */
+@@ -122,7 +122,7 @@ void tree_apply()
+ ce.xclient.data.l[2] = 0;
+ ce.xclient.data.l[3] = 0;
+ ce.xclient.data.l[4] = 0;
+- XSendEvent(GDK_DISPLAY(), GDK_ROOT_WINDOW(), FALSE,
++ XSendEvent(gdk_x11_get_default_xdisplay(), GDK_ROOT_WINDOW(), FALSE,
+ SubstructureNotifyMask | SubstructureRedirectMask,
+ &ce);
+ }
+diff --git a/src/windows.c b/src/windows.c
+index 146a99d..ed289b7 100644
+--- a/src/windows.c
++++ b/src/windows.c
+@@ -50,23 +50,23 @@ void windows_setup_tab()
+ w = get_widget("place_active_popup");
+ s = tree_get_string("placement/monitor", "Any");
+ if (!g_ascii_strcasecmp(s, "Active"))
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), PLACE_ON_ACTIVE);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_ACTIVE);
+ else if (!g_ascii_strcasecmp(s, "Mouse"))
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), PLACE_ON_MOUSE);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_MOUSE);
+ else if (!g_ascii_strcasecmp(s, "Primary"))
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), PLACE_ON_PRIMARY);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_PRIMARY);
+ else
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), PLACE_ON_ALL);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_ALL);
+ g_free(s);
+
+ w = get_widget("primary_monitor_popup");
+ s = tree_get_string("placement/primaryMonitor", "");
+ if (!g_ascii_strcasecmp(s, "Active"))
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), PLACE_ON_ACTIVE);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_ACTIVE);
+ else if (!g_ascii_strcasecmp(s, "Mouse"))
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), PLACE_ON_MOUSE);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_MOUSE);
+ else {
+- gtk_option_menu_set_history(GTK_OPTION_MENU(w), PLACE_ON_FIXED);
++ gtk_combo_box_set_active(GTK_COMBO_BOX(w), PLACE_ON_FIXED);
+
+ w = get_widget("fixed_monitor");
+ gtk_spin_button_set_value(GTK_SPIN_BUTTON(w),
+@@ -88,36 +88,30 @@ static void enable_stuff()
+ b = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w));
+
+ w = get_widget("primary_monitor_popup");
+- b = gtk_option_menu_get_history(GTK_OPTION_MENU(w)) == PLACE_ON_FIXED;
++ b = gtk_combo_box_get_active(GTK_COMBO_BOX(w)) == PLACE_ON_FIXED;
+ w = get_widget("fixed_monitor");
+ gtk_widget_set_sensitive(w, b);
+ }
+
+-void on_primary_monitor_active_activate(GtkMenuItem *w, gpointer data)
++void on_primary_monitor_changed(GtkComboBox *w, gpointer data)
+ {
+ if (mapping) return;
+
+- tree_set_string("placement/primaryMonitor", "Active");
+- enable_stuff();
+-}
+-
+-void on_primary_monitor_mouse_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("placement/primaryMonitor", "Mouse");
+- enable_stuff();
+-}
+-
+-void on_primary_monitor_fixed_activate(GtkMenuItem *w, gpointer data)
+-{
+- GtkWidget *w2;
+-
+- if (mapping) return;
+-
+- w2 = get_widget("fixed_monitor");
+- tree_set_int("placement/primaryMonitor",
+- gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w2)));
++ switch (gtk_combo_box_get_active(w)) {
++ case 0:
++ {
++ GtkWidget *w2 = get_widget("fixed_monitor");
++ tree_set_int("placement/primaryMonitor",
++ gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(w2)));
++ break;
++ }
++ break;
++ case 1:
++ tree_set_string("placement/primaryMonitor", "Active");
++ break;
++ case 2:
++ tree_set_string("placement/primaryMonitor", "Mouse");
++ }
+ enable_stuff();
+ }
+
+@@ -146,30 +140,22 @@ void on_place_mouse_toggled(GtkToggleButton *w, gpointer data)
+ enable_stuff();
+ }
+
+-void on_place_active_popup_all_activate(GtkMenuItem *w, gpointer data)
++void on_place_active_popup_changed(GtkComboBox *w, gpointer data)
+ {
+ if (mapping) return;
+
+- tree_set_string("placement/monitor", "Any");
+-}
+-
+-void on_place_active_popup_active_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("placement/monitor", "Active");
+-}
+-
+-void on_place_active_popup_mouse_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("placement/monitor", "Mouse");
+-}
+-
+-void on_place_active_popup_primary_activate(GtkMenuItem *w, gpointer data)
+-{
+- if (mapping) return;
+-
+- tree_set_string("placement/monitor", "Primary");
++ switch (gtk_combo_box_get_active(w)) {
++ case 0:
++ tree_set_string("placement/monitor", "Primary");
++ break;
++ case 1:
++ tree_set_string("placement/monitor", "Active");
++ break;
++ case 2:
++ tree_set_string("placement/monitor", "Mouse");
++ break;
++ case 3:
++ tree_set_string("placement/monitor", "Any");
++ break;
++ }
+ }
+--
+1.9.1
+
diff --git a/obconf/build/patches/obconf_switch_to_gtk3.patch b/obconf/build/patches/obconf_switch_to_gtk3.patch
new file mode 100644
index 00000000..510435ab
--- /dev/null
+++ b/obconf/build/patches/obconf_switch_to_gtk3.patch
@@ -0,0 +1,349 @@
+From b2d08e79f8499723ae4dffe8068381dd108898cb Mon Sep 17 00:00:00 2001
+From: galtgendo <galtgendo>
+Date: Sat, 17 Aug 2013 20:55:04 +0200
+Subject: [PATCH] Switch to GTK+ 3
+
+---
+ configure.ac | 2 +-
+ src/preview.c | 180 ++++++++++++++++++++++++++++++++++++----------------------
+ 2 files changed, 112 insertions(+), 70 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b99620f..86df550 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -27,7 +27,7 @@ PKG_CHECK_MODULES(LIBSTARTUPNOTIFICATION, [libstartup-notification-1.0])
+ AC_SUBST(LIBSTARTUPNOTIFICATION_CFLAGS)
+ AC_SUBST(LIBSTARTUPNOTIFICATION_LIBS)
+
+-PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.24.0])
++PKG_CHECK_MODULES(GTK, [gtk+-3.0])
+ AC_SUBST(GTK_CFLAGS)
+ AC_SUBST(GTK_LIBS)
+
+diff --git a/src/preview.c b/src/preview.c
+index f52bb32..c00c3c0 100644
+--- a/src/preview.c
++++ b/src/preview.c
+@@ -24,6 +24,8 @@
+ #include <string.h>
+
+ #include <obrender/theme.h>
++#include <gdk/gdkx.h>
++#include <cairo-xlib.h>
+
+ #define PADDING 2 /* openbox does it :/ */
+
+@@ -53,7 +55,10 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ RrAppearance *selected;
+ RrAppearance *bullet; /* for submenu */
+
+- GdkPixmap *pixmap;
++ cairo_surface_t *surface;
++ GdkScreen *screen;
++ Display *xdisplay;
++ Visual *xvisual;
+ GdkPixbuf *pixbuf, *tmp_pixbuf;
+
+ /* width and height of the whole menu */
+@@ -64,6 +69,10 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ gint bw, bh;
+ gint unused;
+
++ screen = gdk_screen_get_default();
++ xdisplay = gdk_x11_get_default_xdisplay();
++ xvisual = gdk_x11_visual_get_xvisual(gdk_screen_get_system_visual(screen));
++
+ /* set up appearances */
+ title = theme->a_menu_title;
+
+@@ -126,11 +135,13 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+
+ theme_pixmap_paint(title_text, bw, title_h);
+
+- pixmap = gdk_pixmap_foreign_new(title_text->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0,
+- bw, title_h);
++ surface = cairo_xlib_surface_create(xdisplay, title_text->pixmap,
++ xvisual,
++ bw, title_h);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0,
++ bw, title_h);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, bw, title_h, pixbuf, x, y);
+
+ y += title_h + theme->mbwidth;
+@@ -143,11 +154,13 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+
+ /* draw background for normal entry */
+ theme_pixmap_paint(background, bw, bh);
+- pixmap = gdk_pixmap_foreign_new(background->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0,
+- bw, bh);
++ surface = cairo_xlib_surface_create(xdisplay, background->pixmap,
++ xvisual,
++ bw, bh);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0,
++ bw, bh);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, bw, bh, pixbuf, x, y);
+
+ /* draw normal entry */
+@@ -156,11 +169,13 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ normal->surface.parenty = PADDING;
+ RrMinSize(normal, &tw, &th);
+ theme_pixmap_paint(normal, tw, th);
+- pixmap = gdk_pixmap_foreign_new(normal->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0,
+- tw, th);
++ surface = cairo_xlib_surface_create(xdisplay, normal->pixmap,
++ xvisual,
++ tw, th);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0,
++ tw, th);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, tw, th, pixbuf,
+ x + PADDING, y + PADDING);
+
+@@ -170,11 +185,13 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ bullet->surface.parentx = bw - th;
+ bullet->surface.parenty = PADDING;
+ theme_pixmap_paint(bullet, th, th);
+- pixmap = gdk_pixmap_foreign_new(bullet->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0,
+- th, th);
++ surface = cairo_xlib_surface_create(xdisplay, bullet->pixmap,
++ xvisual,
++ th, th);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0,
++ th, th);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, th, th, pixbuf,
+ width - theme->mbwidth - th, y + PADDING);
+
+@@ -185,11 +202,13 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ background->surface.parentx = x - theme->mbwidth;
+ background->surface.parenty = y - theme->mbwidth;
+ theme_pixmap_paint(background, bw, bh);
+- pixmap = gdk_pixmap_foreign_new(background->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0,
+- bw, bh);
++ surface = cairo_xlib_surface_create(xdisplay, background->pixmap,
++ xvisual,
++ bw, bh);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0,
++ bw, bh);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, bw, bh, pixbuf, x, y);
+
+ /* draw disabled entry */
+@@ -198,11 +217,13 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ disabled->surface.parentx = PADDING;
+ disabled->surface.parenty = PADDING;
+ theme_pixmap_paint(disabled, tw, th);
+- pixmap = gdk_pixmap_foreign_new(disabled->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0,
+- tw, th);
++ surface = cairo_xlib_surface_create(xdisplay, disabled->pixmap,
++ xvisual,
++ tw, th);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0,
++ tw, th);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, tw, th, pixbuf,
+ x + PADDING, y + PADDING);
+
+@@ -215,11 +236,13 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ background->surface.parenty = y - theme->mbwidth;
+
+ theme_pixmap_paint(background, bw, bh);
+- pixmap = gdk_pixmap_foreign_new(background->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0,
+- bw, bh);
++ surface = cairo_xlib_surface_create(xdisplay, background->pixmap,
++ xvisual,
++ bw, bh);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0,
++ bw, bh);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, bw, bh, pixbuf, x, y);
+
+ /* draw selected entry */
+@@ -228,11 +251,13 @@ static GdkPixbuf* preview_menu(RrTheme *theme)
+ selected->surface.parentx = PADDING;
+ selected->surface.parenty = PADDING;
+ theme_pixmap_paint(selected, tw, th);
+- pixmap = gdk_pixmap_foreign_new(selected->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0,
+- tw, th);
++ surface = cairo_xlib_surface_create(xdisplay, selected->pixmap,
++ xvisual,
++ tw, th);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0,
++ tw, th);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, tw, th, pixbuf,
+ x + PADDING, y + PADDING);
+ g_object_unref(tmp_pixbuf);
+@@ -247,7 +272,10 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ RrAppearance *handle;
+ RrAppearance *a;
+
+- GdkPixmap *pixmap;
++ cairo_surface_t *surface;
++ GdkScreen *screen;
++ Display *xdisplay;
++ Visual *xvisual;
+ GdkPixbuf *pixbuf = NULL, *tmp_pixbuf = NULL;
+ GdkPixbuf *scratch;
+
+@@ -255,6 +283,10 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+
+ const gchar *layout;
+
++ screen = gdk_screen_get_default();
++ xdisplay = gdk_x11_get_default_xdisplay();
++ xvisual = gdk_x11_visual_get_xvisual(gdk_screen_get_system_visual(screen));
++
+ title = focus ? theme->a_focused_title : theme->a_unfocused_title;
+
+ /* set border */
+@@ -271,10 +303,12 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ theme_pixmap_paint(title, w, h);
+
+ x = y = theme->fbwidth;
+- pixmap = gdk_pixmap_foreign_new(title->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0, w, h);
++ surface = cairo_xlib_surface_create(xdisplay, title->pixmap,
++ xvisual,
++ w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0, w, h);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ /* calculate label width */
+@@ -317,10 +351,12 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ w = h = theme->button_size + 2;
+
+ theme_pixmap_paint(a, w, h);
+- pixmap = gdk_pixmap_foreign_new(a->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0, w, h);
++ surface = cairo_xlib_surface_create(xdisplay, a->pixmap,
++ xvisual,
++ w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0, w, h);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ x += theme->button_size + 2 + theme->paddingx + 1;
+@@ -335,10 +371,12 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ h = theme->label_height;
+
+ theme_pixmap_paint(a, w, h);
+- pixmap = gdk_pixmap_foreign_new(a->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0, w, h);
++ surface = cairo_xlib_surface_create(xdisplay, a->pixmap,
++ xvisual,
++ w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0, w, h);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ x += w + theme->paddingx + 1;
+@@ -382,12 +420,14 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ h = theme->button_size;
+
+ theme_pixmap_paint(a, w, h);
+- pixmap = gdk_pixmap_foreign_new(a->pixmap);
++ surface = cairo_xlib_surface_create(xdisplay, a->pixmap,
++ xvisual,
++ w, h);
+ /* use y + 1 because these buttons should be centered wrt the label
+ */
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0, w, h);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y + 1);
+
+ x += theme->button_size + theme->paddingx + 1;
+@@ -403,10 +443,12 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ h = theme->handle_height;
+
+ theme_pixmap_paint(handle, w, h);
+- pixmap = gdk_pixmap_foreign_new(handle->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0, w, h);
++ surface = cairo_xlib_surface_create(xdisplay, handle->pixmap,
++ xvisual,
++ w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0, w, h);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ /* openbox handles this drawing stuff differently (it fills the bottom
+@@ -425,17 +467,17 @@ static GdkPixbuf* preview_window(RrTheme *theme, const gchar *titlelayout,
+ w = theme->grip_width;
+
+ theme_pixmap_paint(a, w, h);
+- pixmap = gdk_pixmap_foreign_new(a->pixmap);
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0, w, h);
++ surface = cairo_xlib_surface_create(xdisplay, a->pixmap,
++ xvisual, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0, w, h);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+
+ /* right grip */
+ x = width - theme->fbwidth - theme->grip_width;
+- tmp_pixbuf = gdk_pixbuf_get_from_drawable(tmp_pixbuf, pixmap,
+- gdk_colormap_get_system(),
+- 0, 0, 0, 0, w, h);
++ tmp_pixbuf = gdk_pixbuf_get_from_surface(surface,
++ 0, 0, w, h);
++ cairo_surface_destroy(surface);
+ gdk_pixbuf_copy_area(tmp_pixbuf, 0, 0, w, h, pixbuf, x, y);
+ }
+
+--
+1.9.1
+