diff options
| author | Dana Jansens <danakj@orodu.net> | 2010-04-16 21:19:50 -0400 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2010-04-16 21:32:38 -0400 |
| commit | 171e476ba3faaa3dbd95e9e95f4121fae2db6564 (patch) | |
| tree | 2129a2dde6bf02755ef3e38ca7ffdbd691c58dc8 /openbox/client.c | |
| parent | 550e961c0e4e5b512d2cc4408bda03201dee5089 (diff) | |
When determining the current timestamp, try get something a lil more accurate
Get the first timestamp from the event queue, rather than (potentially) the
last.
also treat it as the actual event_curtime, meaning it is used when focusing a
newly mapped window etc.
Diffstat (limited to 'openbox/client.c')
| -rw-r--r-- | openbox/client.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/openbox/client.c b/openbox/client.c index 2d78040a..3399b509 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -203,13 +203,14 @@ void client_manage(Window window, ObPrompt *prompt) ObAppSettings *settings; gboolean transient = FALSE; Rect place; - Time launch_time, map_time; + Time launch_time; guint32 user_time; gboolean obplaced; ob_debug("Managing window: 0x%lx", window); - map_time = event_get_server_time(); + /* we want to always have a valid time when the window is mapping */ + g_assert(event_curtime != CurrentTime); /* choose the events we want to receive on the CLIENT window (ObPrompt windows can request events too) */ @@ -272,7 +273,7 @@ void client_manage(Window window, ObPrompt *prompt) launch_time = sn_app_started(self->startup_id, self->class, self->name); if (!OBT_PROP_GET32(self->window, NET_WM_USER_TIME, CARDINAL, &user_time)) - user_time = map_time; + user_time = event_curtime; /* do this after we have a frame.. it uses the frame to help determine the WM_STATE to apply. */ @@ -441,7 +442,7 @@ void client_manage(Window window, ObPrompt *prompt) ob_debug_type(OB_DEBUG_FOCUS, "Going to try activate new window? %s", activate ? "yes" : "no"); if (activate) { - activate = client_can_steal_focus(self, map_time, launch_time); + activate = client_can_steal_focus(self, event_curtime, launch_time); if (!activate) { /* if the client isn't stealing focus, then hilite it so the user |
