mirror of
https://github.com/servo/servo.git
synced 2025-08-05 13:40:08 +01:00
Add Servo_InsertStyleSheetBefore.
This commit is contained in:
parent
fbc575407d
commit
ef0476115d
2 changed files with 19 additions and 0 deletions
|
@ -76,6 +76,9 @@ extern "C" {
|
||||||
set: *mut RawServoStyleSet);
|
set: *mut RawServoStyleSet);
|
||||||
pub fn Servo_PrependStyleSheet(sheet: *mut RawServoStyleSheet,
|
pub fn Servo_PrependStyleSheet(sheet: *mut RawServoStyleSheet,
|
||||||
set: *mut RawServoStyleSet);
|
set: *mut RawServoStyleSet);
|
||||||
|
pub fn Servo_InsertStyleSheetBefore(sheet: *mut RawServoStyleSheet,
|
||||||
|
reference: *mut RawServoStyleSheet,
|
||||||
|
set: *mut RawServoStyleSet);
|
||||||
pub fn Servo_RemoveStyleSheet(sheet: *mut RawServoStyleSheet,
|
pub fn Servo_RemoveStyleSheet(sheet: *mut RawServoStyleSheet,
|
||||||
set: *mut RawServoStyleSet);
|
set: *mut RawServoStyleSet);
|
||||||
pub fn Servo_StyleSheetHasRules(sheet: *mut RawServoStyleSheet) -> bool;
|
pub fn Servo_StyleSheetHasRules(sheet: *mut RawServoStyleSheet) -> bool;
|
||||||
|
|
|
@ -143,6 +143,22 @@ pub extern "C" fn Servo_PrependStyleSheet(raw_sheet: *mut RawServoStyleSheet,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[no_mangle]
|
||||||
|
pub extern "C" fn Servo_InsertStyleSheetBefore(raw_sheet: *mut RawServoStyleSheet,
|
||||||
|
raw_reference: *mut RawServoStyleSheet,
|
||||||
|
raw_data: *mut RawServoStyleSet) {
|
||||||
|
type Helpers = ArcHelpers<RawServoStyleSheet, Stylesheet>;
|
||||||
|
let data = PerDocumentStyleData::borrow_mut_from_raw(raw_data);
|
||||||
|
Helpers::with(raw_sheet, |sheet| {
|
||||||
|
Helpers::with(raw_reference, |reference| {
|
||||||
|
data.stylesheets.retain(|x| !arc_ptr_eq(x, sheet));
|
||||||
|
let index = data.stylesheets.iter().position(|x| arc_ptr_eq(x, reference)).unwrap();
|
||||||
|
data.stylesheets.insert(index, sheet.clone());
|
||||||
|
data.stylesheets_changed = true;
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
pub extern "C" fn Servo_RemoveStyleSheet(raw_sheet: *mut RawServoStyleSheet,
|
pub extern "C" fn Servo_RemoveStyleSheet(raw_sheet: *mut RawServoStyleSheet,
|
||||||
raw_data: *mut RawServoStyleSet) {
|
raw_data: *mut RawServoStyleSet) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue