summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElijah Newren <newren@gmail.com>2005-02-20 23:38:31 +0000
committerElijah Newren <newren@src.gnome.org>2005-02-20 23:38:31 +0000
commit992f2370903daad5f24334f323a4e5953aa6594c (patch)
tree7b0f8447ef10b49444df0a7c7f80f105d7ef86c3
parent8de466b582b6e7150e01b1013f37bbc31e637e96 (diff)
downloadmetacity-992f2370903daad5f24334f323a4e5953aa6594c.tar.gz
Handle _NET_CURRENT_DESKTOP messages that come with timestamps. Fixes the
2005-02-20 Elijah Newren <newren@gmail.com> * 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.
-rw-r--r--ChangeLog6
-rw-r--r--src/display.c15
2 files changed, 17 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 66cd02cf..9cc3e324 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2005-02-20 Elijah Newren <newren@gmail.com>
+ * 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 <newren@gmail.com>
+
* src/window.c: (meta_window_activate): when receiving a
_NET_ACTIVE_WINDOW message, switch to the desktop where the window
is located before activating instead of moving the window to the
diff --git a/src/display.c b/src/display.c
index a7e18c5b..58400c41 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);
}