Example #1
0
Bool
apc_pointer_set_visible( Handle self, Bool visible)
{
	/* maintaining hide/show count */
	if ( visible) {
		if ( guts. pointer_invisible_count == 0)
			return true;
		if ( ++guts. pointer_invisible_count < 0)
			return true;
	} else {
		if ( guts. pointer_invisible_count-- < 0)
			return true;
	}

	/* setting pointer for widget under cursor */
	{
		Point p    = apc_pointer_get_pos( application);
		Handle wij = apc_application_get_widget_from_point( application, p);
		if ( wij) {
			X(wij)-> flags. pointer_obscured = (visible ? 0 : 1);
			XDefineCursor( DISP, X(wij)-> udrawable,
				visible ? (( X(wij)-> pointer_id == crUser) ?
								X(wij)-> user_pointer : X(wij)-> actual_pointer)
						: prima_null_pointer());
		}
	}
	XFlush( DISP);
	if ( guts. grab_widget)
		apc_widget_set_capture( guts. grab_widget, true, guts. grab_confine);
	return true;
}
Example #2
0
Point
Widget_pointerPos( Handle self, Bool set, Point p)
{
    if ( !set) {
        p = apc_pointer_get_pos( self);
        apc_widget_map_points( self, false, 1, &p);
        return p;
    }
    apc_widget_map_points( self, true, 1, &p);
    apc_pointer_set_pos( self, p. x, p. y);
    return p;
}