aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--settings-daemon.c2
-rw-r--r--xsettings-manager.c10
3 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index be2b933..d57f7d5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-08-17 Matthew Allum <mallum@openedhand.com>
+
+ * xsettings-manager.c: (xsettings_manager_new):
+ Make SetSelection use CurrentTime rather than generated timestamp.
+ Appears to work around wierd race issues on slow machines.
+
2006-07-28 Chris Lord <chris@openedhand.com>
* configure.ac:
diff --git a/settings-daemon.c b/settings-daemon.c
index 434ad78..cc0f195 100644
--- a/settings-daemon.c
+++ b/settings-daemon.c
@@ -685,6 +685,8 @@ main(int argc, char **argv)
}
}
+ g_type_init();
+
gdk_init(&argc, &argv);
loop = g_main_loop_new(NULL, FALSE);
diff --git a/xsettings-manager.c b/xsettings-manager.c
index 98c800c..d96f948 100644
--- a/xsettings-manager.c
+++ b/xsettings-manager.c
@@ -45,7 +45,7 @@ struct _XSettingsManager
unsigned long serial;
};
-XSettingsList *settings;
+static XSettingsList *settings;
typedef struct
{
@@ -156,7 +156,13 @@ xsettings_manager_new (Display *display,
timestamp = get_server_time (display, manager->window);
XSetSelectionOwner (display, manager->selection_atom,
- manager->window, timestamp);
+ manager->window,
+ /* NOTE: using CurrentTime rather timestamp.
+ * For some reason timestamp causes the selection
+ * to fail on v slow machines at least - not sure
+ * why this is. Very odd.
+ */
+ CurrentTime);
/* Check to see if we managed to claim the selection. If not,
* we treat it as if we got it then immediately lost it