mirror of
https://github.com/servo/servo.git
synced 2025-08-06 06:00:15 +01:00
Auto merge of #10889 - heycam:insert-sheet, r=bholley
Add Servo_InsertStyleSheetBefore. r? @bholley Will be used by https://bugzilla.mozilla.org/show_bug.cgi?id=1268390. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10889) <!-- Reviewable:end -->
This commit is contained in:
commit
78ae9a5da0
2 changed files with 19 additions and 0 deletions
|
@ -76,6 +76,9 @@ extern "C" {
|
|||
set: *mut RawServoStyleSet);
|
||||
pub fn Servo_PrependStyleSheet(sheet: *mut RawServoStyleSheet,
|
||||
set: *mut RawServoStyleSet);
|
||||
pub fn Servo_InsertStyleSheetBefore(sheet: *mut RawServoStyleSheet,
|
||||
reference: *mut RawServoStyleSheet,
|
||||
set: *mut RawServoStyleSet);
|
||||
pub fn Servo_RemoveStyleSheet(sheet: *mut RawServoStyleSheet,
|
||||
set: *mut RawServoStyleSet);
|
||||
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]
|
||||
pub extern "C" fn Servo_RemoveStyleSheet(raw_sheet: *mut RawServoStyleSheet,
|
||||
raw_data: *mut RawServoStyleSet) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue