DFBResult
ILayerContext_Real::FindWindow(
                    DFBWindowID                                window_id,
                    CoreWindow                               **ret_window
)
{
    CoreWindow *window;
    FusionID    caller;

    D_DEBUG_AT( DirectFB_CoreLayerContext, "ILayerContext_Real::%s()\n", __FUNCTION__ );

    D_ASSERT( ret_window != NULL );

    window = dfb_layer_context_find_window( obj, window_id );
    if (!window)
         return DFB_IDNOTFOUND;

    caller = Core_GetIdentity();

    if (dfb_config->ownership_check &&
        caller != FUSION_ID_MASTER &&
        window->object.identity != caller &&
        fusion_object_check_owner( &window->object, caller, false ))
    {
         dfb_window_unref( window );
         return DFB_ACCESSDENIED;
    }

    *ret_window = window;

    return DFB_OK;
}
Example #2
0
DFBResult
ILayerContext_Real::FindWindow(
                    DFBWindowID                                window_id,
                    CoreWindow                               **ret_window
)
{
    CoreWindow *window;

    D_DEBUG_AT( DirectFB_CoreLayerContext, "ILayerContext_Real::%s()\n", __FUNCTION__ );

    D_ASSERT( ret_window != NULL );

    window = dfb_layer_context_find_window( obj, window_id );
    if (!window)
         return DFB_IDNOTFOUND;

    *ret_window = window;

    return DFB_OK;
}