diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | settings-daemon.c | 2 | ||||
-rw-r--r-- | xsettings-manager.c | 10 |
3 files changed, 16 insertions, 2 deletions
@@ -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 |