#[derive(Debug,Clone,Default,Serialize,Deserialize)]
pub struct PieceSpecialProperties {
pub rendering: Option<SpecialClientRendering>,
+ pub multigrab: bool,
}
#[typetag::serde(tag="type")]
if self.occult.is_active() { false }
else { self.rotateable }
}
+ pub fn multigrab(&self, ipc: &IPiece) -> bool {
+ if self.occult.is_active() { false }
+ else { ipc.special.multigrab }
+ }
pub fn dummy() -> Self {
let gen_dummy = Generation(1);
angle : pri.angle(gpc).to_compass(),
pinned : gpc.pinned,
rotateable : gpc.rotateable(),
+ multigrab : gpc.multigrab(ipc),
uos : pri.ui_operations(gs, gpc, ipc)?,
moveable : gpc.moveable(),
facehint : pri.facehint(gpc),
pub pinned: bool,
pub moveable: PieceMoveable,
pub rotateable: bool,
+ pub multigrab: bool,
pub uos: Vec<UoDescription>,
pub occregion: Option<JsonString<Region>>,
pub bbox: Rect,
pinned: boolean,
moveable: PieceMoveable,
rotateable: boolean,
+ multigrab: boolean,
uos : UoDescription[],
uelem : SVGGraphicsElement,
delem : SVGGraphicsElement,
uos: UoDescription[],
moveable: PieceMoveable,
rotateable: boolean,
+ multigrab: boolean,
occregion: string | null,
bbox: Rect,
}
p.pinned = info.pinned;
p.moveable = info.moveable;
p.rotateable = info.rotateable;
+ p.multigrab = info.multigrab;
p.angle = info.angle;
p.bbox = info.bbox;
piece_set_zlevel_from(piece,p,info);