Ejemplo n.º 1
0
static DFBResult
IDirectFBWindow_SetDstGeometry( IDirectFBWindow         *thiz,
                                const DFBWindowGeometry *geometry )
{
     DFBResult        ret;
     CoreWindowConfig config;

     DIRECT_INTERFACE_GET_DATA(IDirectFBWindow)

     D_DEBUG_AT( IDirectFB_Window, "%s()\n", __FUNCTION__ );

     ret = CheckGeometry( geometry );
     if (ret)
          return ret;

     if (data->destroyed)
          return DFB_DESTROYED;

     config.dst_geometry = *geometry;

     return dfb_window_set_config( data->window, &config, CWCF_DST_GEOMETRY );
}
Ejemplo n.º 2
0
DFBResult
IWindow_Real::SetConfig( const CoreWindowConfig        *config,
                         const DFBInputDeviceKeySymbol *keys,
                         u32                            num_keys,
                         CoreWindowConfigFlags          flags )
{
     CoreWindowConfig config_copy;

     D_DEBUG_AT( Core_Window, "IWindow_Real::%s( %p )\n", __FUNCTION__, obj );

     D_MAGIC_ASSERT( obj, CoreWindow );
     D_ASSERT( config != NULL );

     if ((flags & DWCONF_ASSOCIATION) && config->association) {
          DFBResult ret;
          CoreWindow *parent;

          ret = dfb_core_get_window( core, config->association, &parent );
          if (ret)
               return ret;

          if (fusion_object_check_owner( &parent->object, Core_GetIdentity(), false )) {
               dfb_window_unref( parent );
               return DFB_ACCESSDENIED;
          }

          dfb_window_unref( parent );
     }

     config_copy = *config;

     config_copy.keys     = (DFBInputDeviceKeySymbol*) keys;
     config_copy.num_keys = num_keys;

     return dfb_window_set_config( obj, &config_copy, flags );
}