X-Git-Url: https://git.decadent.org.uk/gitweb/?p=ion3.git;a=blobdiff_plain;f=ioncore%2Fclientwin.c;h=11ce2904b56c7d085c5a2924b2b596fa77fbd2f8;hp=1b85dfcf994c8e95ee0522452139869fa204d990;hb=HEAD;hpb=f869221ce49f0fb7cca48eee28daff8684305963 diff --git a/ioncore/clientwin.c b/ioncore/clientwin.c index 1b85dfc..11ce290 100644 --- a/ioncore/clientwin.c +++ b/ioncore/clientwin.c @@ -1,7 +1,7 @@ /* * ion/ioncore/clientwin.c * - * Copyright (c) Tuomo Valkonen 1999-2007. + * Copyright (c) Tuomo Valkonen 1999-2009. * * See the included file LICENSE for details. */ @@ -508,10 +508,7 @@ WClientWin* ioncore_manage_clientwin(Window win, bool maprq) xwindow_unmanaged_selectinput(win, 0); xwindow_unmanaged_selectinput(icon_win, StructureNotifyMask); - - win=icon_win; - attr=icon_attr; - + /* Copy WM_CLASS as _ION_DOCKAPP_HACK */ p=xwindow_get_text_property(win, XA_WM_CLASS, &n); @@ -525,6 +522,9 @@ WClientWin* ioncore_manage_clientwin(Window win, bool maprq) xwindow_set_text_property(icon_win, ioncore_g.atom_dockapp_hack, pdummy, 2); } + + win=icon_win; + attr=icon_attr; } } @@ -561,8 +561,9 @@ WClientWin* ioncore_manage_clientwin(Window win, bool maprq) param.geom=REGION_GEOM(cwin); param.maprq=maprq; - param.switchto=(init_state!=IconicState && clientwin_get_switchto(cwin)); param.jumpto=extl_table_is_bool_set(cwin->proptab, "jumpto"); + param.switchto=(init_state!=IconicState && + (param.jumpto || clientwin_get_switchto(cwin))); param.gravity=(cwin->size_hints.flags&PWinGravity ? cwin->size_hints.win_gravity : ForgetGravity); @@ -597,7 +598,11 @@ WClientWin* ioncore_manage_clientwin(Window win, bool maprq) } if(postmanage_check(cwin, &attr)){ - if(param.jumpto && ioncore_g.focus_next==NULL) + /* Check for focus_next==NULL does not play nicely with + * pointer_focus_hack. + */ + /*if(param.jumpto && ioncore_g.focus_next==NULL)*/ + if(param.jumpto && !region_manager_is_focusnext((WRegion*)cwin)) region_goto((WRegion*)cwin); hook_call_o(clientwin_mapped_hook, (Obj*)cwin); return cwin;