diff --git a/ChangeLog b/ChangeLog index 66cd02cf5..9cc3e324e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-02-20 Elijah Newren + + * src/display.c: (event_callback): Handle _NET_CURRENT_DESKTOP + messages that come with timestamps. Fixes the metacity portion of + #161361 other than the portion handled by #128380. + 2005-02-20 Elijah Newren * src/window.c: (meta_window_activate): when receiving a diff --git a/src/display.c b/src/display.c index a7e18c5bb..58400c41c 100644 --- a/src/display.c +++ b/src/display.c @@ -2154,18 +2154,25 @@ event_callback (XEvent *event, { int space; MetaWorkspace *workspace; + guint32 time; space = event->xclient.data.l[0]; + time = event->xclient.data.l[1]; - meta_verbose ("Request to change current workspace to %d\n", - space); - + meta_verbose ("Request to change current workspace to %d with " + "specified timestamp of %lu\n", + space, (unsigned long)time); + workspace = meta_screen_get_workspace_by_index (screen, space); + /* Handle clients using the older version of the spec... */ + if (time == 0 && workspace) + time = meta_display_get_current_time_roundtrip (display); + if (workspace) - meta_workspace_activate (workspace, meta_display_get_current_time_roundtrip (display)); + meta_workspace_activate (workspace, time); else meta_verbose ("Don't know about workspace %d\n", space); }