Example #1
0
MCRectangle MCStack::view_setgeom(const MCRectangle &p_rect)
{
	// IM-2014-09-23: [[ Bug 13349 ]] Defer window resizing if the screen is locked.
	if ((MCRedrawIsScreenLocked() || !MCRedrawIsScreenUpdateEnabled()) && (opened && getflag(F_VISIBLE)))
	{
		m_view_need_resize = true;
		MCRedrawScheduleUpdateForStack(this);
		
		return p_rect;
	}
	
	return view_platform_setgeom(p_rect);
}
Example #2
0
// IM-2013-10-14: [[ FullscreenMode ]] Move update region tracking into view abstraction
void MCStack::view_dirty_rect(const MCRectangle &p_rect)
{
    MCRectangle t_visible_rect = MCRectangleGetTransformedBounds(view_getstackvisiblerect(), view_getviewtransform());
    MCRectangle t_dirty_rect = MCU_intersect_rect(p_rect, t_visible_rect);

	if (t_dirty_rect.width == 0 || t_dirty_rect.height == 0)
		return;
	
	// If there is no region yet, make one.
	if (m_view_update_region == nil)
		/* UNCHECKED */ MCRegionCreate(m_view_update_region);
	
	MCRegionIncludeRect(m_view_update_region, t_dirty_rect);
	
	// Mark the stack as needing a redraw and schedule an update.
	m_view_need_redraw = true;

	MCRedrawScheduleUpdateForStack(this);
}