@ -7266,6 +7266,7 @@ _e_border_eval0(E_Border *bd)
if ( bd - > new_client )
{
E_Event_Border_Add * ev ;
E_Exec_Instance * inst ;
ev = E_NEW ( E_Event_Border_Add , 1 ) ;
ev - > border = bd ;
@ -7275,6 +7276,56 @@ _e_border_eval0(E_Border *bd)
if ( ( ! bd - > lock_border ) | | ( ! bd - > client . border . name ) )
bd - > client . border . changed = 1 ;
{
char * str = NULL ;
if ( ( ecore_x_netwm_startup_id_get ( bd - > client . win , & str ) & & ( str ) ) | |
( ( bd - > client . icccm . client_leader > 0 ) & &
ecore_x_netwm_startup_id_get ( bd - > client . icccm . client_leader , & str ) & & ( str ) )
)
{
if ( ! strncmp ( str , " E_START| " , 8 ) )
{
int id ;
id = atoi ( str + 8 ) ;
if ( id > 0 ) bd - > client . netwm . startup_id = id ;
}
free ( str ) ;
}
}
/* It's ok not to have fetch flag, should only be set on startup
* * and not changed . */
if ( ! ecore_x_netwm_pid_get ( bd - > client . win , & bd - > client . netwm . pid ) )
{
if ( bd - > client . icccm . client_leader )
{
if ( ! ecore_x_netwm_pid_get ( bd - > client . icccm . client_leader , & bd - > client . netwm . pid ) )
bd - > client . netwm . pid = - 1 ;
}
else
bd - > client . netwm . pid = - 1 ;
}
inst = e_exec_startup_id_pid_instance_find ( bd - > client . netwm . startup_id ,
bd - > client . netwm . pid ) ;
printf ( " MATCH %p [stid/pid = %i %i \n " ,
inst ,
bd - > client . netwm . startup_id ,
bd - > client . netwm . pid ) ;
if ( inst )
{
E_Zone * zone ;
E_Desk * desk ;
printf ( " match s/d: %i/%i,%i \n " , inst - > screen , inst - > desk_x , inst - > desk_y ) ;
zone = e_container_zone_number_get ( bd - > zone - > container ,
inst - > screen ) ;
if ( zone ) e_border_zone_set ( bd , zone ) ;
desk = e_desk_at_xy_get ( bd - > zone , inst - > desk_x , inst - > desk_y ) ;
if ( desk ) e_border_desk_set ( bd , desk ) ;
}
}
/* PRE_POST_FETCH calls e_remember apply for new client */
@ -8202,7 +8253,7 @@ _e_border_eval(E_Border *bd)
}
bd - > changes . icon = 0 ;
}
bd - > new_client = 0 ;
bd - > changed = 0 ;
bd - > changes . stack = 0 ;