EAPI void ecore_x_region_combine(Ecore_X_Region dest, Ecore_X_Region source1, Ecore_X_Region source2) { #ifdef ECORE_XFIXES LOGFN(__FILE__, __LINE__, __FUNCTION__); XFixesUnionRegion(_ecore_x_disp, dest, source1, source2); #endif /* ifdef ECORE_XFIXES */ } /* ecore_x_region_combine */
// Adds the region to the total damage for the workspace void Workspace::addDamage( XserverRegion ®ion ) { if ( mDamage ) { XFixesUnionRegion( dpy, mDamage, mDamage, region ); XFixesDestroyRegion( dpy, region ); } else mDamage = region; region = None; }
/* * Applies the current input shape base and stack to the stage input shape. * This function is for internal use only and should not be used outside of the * actual implementation of the input shape stack. */ static void mnb_input_manager_apply_stack (void) { Display *xdpy; GList *l; gint i; XserverRegion result; g_assert (mgr_singleton); xdpy = meta_plugin_get_xdisplay (mgr_singleton->plugin); if (mgr_singleton->current_region) XFixesDestroyRegion (xdpy, mgr_singleton->current_region); result = mgr_singleton->current_region = XFixesCreateRegion (xdpy, NULL, 0); for (i = 0; i <= MNB_INPUT_LAYER_TOP; ++i) { l = mgr_singleton->layers[i]; if (!l) continue; while (l) { MnbInputRegion *mir = l->data; if (mir->inverse) XFixesSubtractRegion (xdpy, result, result, mir->region); else XFixesUnionRegion (xdpy, result, result, mir->region); l = l->next; } } meta_plugin_set_stage_input_region (mgr_singleton->plugin, result); }