X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.c;h=d6321949a1dee2a0f1c2912c604d269550c2d295;hb=1970e3c3a82870f12d3d5fba59262d1df24e5cb2;hp=1d78a65885309a05970d7757c276b8ee4db37a19;hpb=c564b6245fcfaf0efd523cfa17bc1a73fe640d68;p=chaz%2Fopenbox diff --git a/openbox/client.c b/openbox/client.c index 1d78a658..d6321949 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -247,6 +247,7 @@ void client_manage(Window window, ObPrompt *prompt) gboolean transient = FALSE; Rect place, *monitor; Time launch_time, map_time; + gint user_time; grab_server(TRUE); @@ -344,6 +345,9 @@ void client_manage(Window window, ObPrompt *prompt) /* 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)) + 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); @@ -360,6 +364,8 @@ void client_manage(Window window, ObPrompt *prompt) /* this means focus=true for window is same as config_focus_new=true */ ((config_focus_new || (settings && settings->focus == 1)) || client_search_focus_tree_full(self)) && + /* NET_WM_USER_TIME 0 when mapping means don't focus */ + (user_time != 0) && /* this checks for focus=false for the window */ (!settings || settings->focus != 0) && focus_valid_target(self, FALSE, FALSE, TRUE, FALSE, FALSE))