From: Mikael Magnusson Date: Wed, 29 Oct 2008 12:48:03 +0000 (+0100) Subject: Merge branch 'backport' into work X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=c230443c6596039f426542f5a286120891a745c5;p=chaz%2Fopenbox Merge branch 'backport' into work --- c230443c6596039f426542f5a286120891a745c5 diff --cc openbox/client.c index ab00cd0d,d6321949..5686a939 --- a/openbox/client.c +++ b/openbox/client.c @@@ -202,8 -247,44 +202,9 @@@ void client_manage(Window window, ObPro gboolean transient = FALSE; Rect place, *monitor; Time launch_time, map_time; + gint user_time; - grab_server(TRUE); - - /* check if it has already been unmapped by the time we started - mapping. the grab does a sync so we don't have to here */ - if (XCheckTypedWindowEvent(ob_display, window, DestroyNotify, &e) || - XCheckTypedWindowEvent(ob_display, window, UnmapNotify, &e)) - { - XPutBackEvent(ob_display, &e); - - ob_debug("Trying to manage unmapped window. Aborting that.\n"); - grab_server(FALSE); - return; /* don't manage it */ - } - - /* make sure it isn't an override-redirect window */ - if (!XGetWindowAttributes(ob_display, window, &attrib) || - attrib.override_redirect) - { - grab_server(FALSE); - return; /* don't manage it */ - } - - /* is the window a docking app */ - if ((wmhint = XGetWMHints(ob_display, window))) { - if ((wmhint->flags & StateHint) && - wmhint->initial_state == WithdrawnState) - { - dock_add(window, wmhint); - grab_server(FALSE); - XFree(wmhint); - return; - } - XFree(wmhint); - } - - ob_debug("Managing window: 0x%lx\n", window); + ob_debug("Managing window: 0x%lx", window); map_time = event_get_server_time(); @@@ -264,6 -345,9 +265,9 @@@ /* tell startup notification that this app started */ launch_time = sn_app_started(self->startup_id, self->class, self->name); - if (!PROP_GET32(self->window, net_wm_user_time, cardinal, &user_time)) ++ if (!OBT_PROP_GET32(self->window, NET_WM_USER_TIME, CARDINAL, &user_time)) + user_time = map_time; + /* do this after we have a frame.. it uses the frame to help determine the WM_STATE to apply. */ client_change_state(self);