Skip to content

Commit

Permalink
deal with MQ outside of Responsive Design
Browse files Browse the repository at this point in the history
  • Loading branch information
Daniel Glazman committed Nov 13, 2017
1 parent 91c7539 commit 2cb40be
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
21 changes: 19 additions & 2 deletions modules/cssInspector.jsm
Original file line number Diff line number Diff line change
Expand Up @@ -274,21 +274,38 @@ var CssInspector = {
return ruleset;
},

findLastRuleInRulesetForSelector: function(aRuleset, aSelectorText, aResponsiveRulerHelper) {
findLastRuleInRulesetForSelector: function(aRuleset, aSelectorText, aResponsiveRulerHelper, aProperty) {
for (var i = aRuleset.length - 1 ; i >= 0; i--)
if (aRuleset[i].rule.selectorText == aSelectorText) {
var isGenericScreenMQ = true;
var hasProperty = false;
var hasPriority = "";
if (aResponsiveRulerHelper) {
var constraints = aResponsiveRulerHelper.getConstraintsForCSSRule(aRuleset[i].rule);
if (constraints && constraints.length) {
var lastConstraint = constraints[constraints.length - 1];
if (lastConstraint)
isGenericScreenMQ = (lastConstraint.minWidth == undefined && lastConstraint.maxWidth == undefined);
hasProperty = (aRuleset[i].rule.style.getPropertyValue(aProperty) != "");
hasPriority = aRuleset[i].rule.style.getPropertyPriority(aProperty);
}
}
else {
// Responsive Design not enabled, we deal only with rules that don't have a parent rule...
if (aRuleset[i].rule.parentRule) {
isGenericScreenMQ = false;
hasProperty = (aRuleset[i].rule.style.getPropertyValue(aProperty) != "");
hasPriority = aRuleset[i].rule.style.getPropertyPriority(aProperty);
}
}

if (isGenericScreenMQ)
return aRuleset[i].rule;
return null;
if (hasProperty || !aResponsiveRulerHelper || aResponsiveRulerHelper.hasSelectedMediaQuery()) {
if (hasProperty)
return { priority: hasPriority };
return null;
}
}
return null;
},
Expand Down
10 changes: 7 additions & 3 deletions sidebars/cssproperties/content/cssproperties.js
Original file line number Diff line number Diff line change
Expand Up @@ -760,7 +760,8 @@ function FindWhereToInsertRuleForScreen(ruleset, property, value, aDelimitor, aR
impossible: false };

var inspectedRule = CssInspector.findRuleForProperty(ruleset, property, gMain.ResponsiveRulerHelper);
if (inspectedRule && inspectedRule.rule) {
if (inspectedRule && inspectedRule.rule &&
(gMain.ResponsiveRulerHelper || !inspectedRule.rule.parentRule)) {
// ok, that property is already applied through a CSS rule

// is that rule dependent on the ID selector for that ID?
Expand Down Expand Up @@ -841,13 +842,16 @@ function FindWhereToInsertRuleForScreen(ruleset, property, value, aDelimitor, aR
// oh, the property is not applied yet, let's just create a rule
// with the ID selector for that property
var sheet;
var existingRule = CssInspector.findLastRuleInRulesetForSelector(ruleset, aDelimitor + aIdent, gMain.ResponsiveRulerHelper);
if (existingRule &&
var existingRule = CssInspector.findLastRuleInRulesetForSelector(ruleset, aDelimitor + aIdent, gMain.ResponsiveRulerHelper, property);
if (existingRule && existingRule.parentStyleSheet &&
(!existingRule.parentStyleSheet.href || existingRule.parentStyleSheet.href.substr(0, 4) != "http")) {
rv.sheet = existingRule.parentStyleSheet;
rv.rule = existingRule;
}
else {
if (existingRule) {
rv.priority = (existingRule.priority ? "important" : "");
}
rv.sheet = FindLastEditableStyleSheet();
}
return rv;
Expand Down

0 comments on commit 2cb40be

Please sign in to comment.