store timestamp for _NET_WM_CM_SX selection

https://bugzilla.gnome.org/show_bug.cgi?id=530702
This commit is contained in:
Travis Watkins 2010-01-05 17:29:06 -05:00 committed by Owen W. Taylor
parent a321f4c842
commit ba4db78ed9
2 changed files with 7 additions and 2 deletions

View File

@ -116,6 +116,7 @@ struct _MetaScreen
#endif #endif
Window wm_cm_selection_window; Window wm_cm_selection_window;
guint32 wm_cm_timestamp;
guint work_area_later; guint work_area_later;

View File

@ -3145,11 +3145,14 @@ meta_screen_set_cm_selection (MetaScreen *screen)
char selection[32]; char selection[32];
Atom a; Atom a;
screen->wm_cm_timestamp = meta_display_get_current_time_roundtrip (
screen->display);
g_snprintf (selection, sizeof(selection), "_NET_WM_CM_S%d", screen->number); g_snprintf (selection, sizeof(selection), "_NET_WM_CM_S%d", screen->number);
meta_verbose ("Setting selection: %s\n", selection); meta_verbose ("Setting selection: %s\n", selection);
a = XInternAtom (screen->display->xdisplay, selection, FALSE); a = XInternAtom (screen->display->xdisplay, selection, FALSE);
XSetSelectionOwner (screen->display->xdisplay, a, XSetSelectionOwner (screen->display->xdisplay, a,
screen->wm_cm_selection_window, CurrentTime); screen->wm_cm_selection_window, screen->wm_cm_timestamp);
} }
void void
@ -3160,7 +3163,8 @@ meta_screen_unset_cm_selection (MetaScreen *screen)
g_snprintf (selection, sizeof(selection), "_NET_WM_CM_S%d", screen->number); g_snprintf (selection, sizeof(selection), "_NET_WM_CM_S%d", screen->number);
a = XInternAtom (screen->display->xdisplay, selection, FALSE); a = XInternAtom (screen->display->xdisplay, selection, FALSE);
XSetSelectionOwner (screen->display->xdisplay, a, None, CurrentTime); XSetSelectionOwner (screen->display->xdisplay, a,
None, screen->wm_cm_timestamp);
} }
GList * GList *