St: fix parsing of transition-duration values
According to css3-transition, transition-duration is expressed as a time, that is, in seconds or milliseconds. Fix that by recognizing numbers with units and implicitly converting to milliseconds after parsing. https://bugzilla.gnome.org/show_bug.cgi?id=681376
This commit is contained in:
parent
51726d8de7
commit
8be3c5ed21
@ -359,7 +359,7 @@ StScrollBar StButton#vhandle:active {
|
|||||||
background-gradient-start: rgba(5,5,6,0.1);
|
background-gradient-start: rgba(5,5,6,0.1);
|
||||||
background-gradient-end: rgba(254,254,254,0.1);
|
background-gradient-end: rgba(254,254,254,0.1);
|
||||||
background-gradient-direction: vertical;
|
background-gradient-direction: vertical;
|
||||||
transition-duration: 300;
|
transition-duration: 300ms;
|
||||||
box-shadow: inset 0px 2px 4px rgba(0,0,0,0.6);
|
box-shadow: inset 0px 2px 4px rgba(0,0,0,0.6);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -394,7 +394,7 @@ StScrollBar StButton#vhandle:active {
|
|||||||
color: rgb(64, 64, 64);
|
color: rgb(64, 64, 64);
|
||||||
caret-color: rgb(64, 64, 64);
|
caret-color: rgb(64, 64, 64);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
transition-duration: 0;
|
transition-duration: 0ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
.notification StEntry,
|
.notification StEntry,
|
||||||
@ -425,7 +425,7 @@ StScrollBar StButton#vhandle:active {
|
|||||||
background-color: black;
|
background-color: black;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
height: 1.86em;
|
height: 1.86em;
|
||||||
transition-duration: 250;
|
transition-duration: 250ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
#panel.lock-screen {
|
#panel.lock-screen {
|
||||||
@ -508,7 +508,7 @@ StScrollBar StButton#vhandle:active {
|
|||||||
-minimum-hpadding: 6px;
|
-minimum-hpadding: 6px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
transition-duration: 100;
|
transition-duration: 100ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
#panel.unlock-screen .panel-button,
|
#panel.unlock-screen .panel-button,
|
||||||
@ -922,7 +922,7 @@ StScrollBar StButton#vhandle:active {
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
border: 1px rgba(0,0,0,0);
|
border: 1px rgba(0,0,0,0);
|
||||||
transition-duration: 100;
|
transition-duration: 100ms;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -939,7 +939,7 @@ StScrollBar StButton#vhandle:active {
|
|||||||
.grid-search-result:hover .overview-icon {
|
.grid-search-result:hover .overview-icon {
|
||||||
background-color: rgba(255,255,255,0.1);
|
background-color: rgba(255,255,255,0.1);
|
||||||
text-shadow: black 0px 2px 2px;
|
text-shadow: black 0px 2px 2px;
|
||||||
transition-duration: 100;
|
transition-duration: 100ms;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -961,13 +961,13 @@ StScrollBar StButton#vhandle:active {
|
|||||||
background-gradient-direction: vertical;
|
background-gradient-direction: vertical;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-shadow: inset 0px 1px 2px 0px rgba(0, 0, 0, 1);
|
box-shadow: inset 0px 1px 2px 0px rgba(0, 0, 0, 1);
|
||||||
transition-duration: 100;
|
transition-duration: 100ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
.show-apps:checked .show-apps-icon,
|
.show-apps:checked .show-apps-icon,
|
||||||
.show-apps:focus .show-apps-icon {
|
.show-apps:focus .show-apps-icon {
|
||||||
color: white;
|
color: white;
|
||||||
transition-duration: 100;
|
transition-duration: 100ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-well-app:focus > .overview-icon,
|
.app-well-app:focus > .overview-icon,
|
||||||
@ -1006,7 +1006,7 @@ StScrollBar StButton#vhandle:active {
|
|||||||
-minimum-hpadding: 6px;
|
-minimum-hpadding: 6px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #ccc;
|
color: #ccc;
|
||||||
transition-duration: 100;
|
transition-duration: 100ms;
|
||||||
padding-left: .3em;
|
padding-left: .3em;
|
||||||
padding-right: .3em;
|
padding-right: .3em;
|
||||||
}
|
}
|
||||||
@ -1309,7 +1309,8 @@ StScrollBar StButton#vhandle:active {
|
|||||||
#message-tray {
|
#message-tray {
|
||||||
background: #2e3436 url(message-tray-background.png);
|
background: #2e3436 url(message-tray-background.png);
|
||||||
background-repeat: repeat;
|
background-repeat: repeat;
|
||||||
transition-duration: 250;
|
transition-duration: 250ms;
|
||||||
|
height: 72px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#message-tray:keyboard {
|
#message-tray:keyboard {
|
||||||
@ -1579,7 +1580,7 @@ StScrollBar StButton#vhandle:active {
|
|||||||
.summary-source {
|
.summary-source {
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
padding: 0 6px 0 6px;
|
padding: 0 6px 0 6px;
|
||||||
transition-duration: 100;
|
transition-duration: 100ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
.summary-source-counter {
|
.summary-source-counter {
|
||||||
|
@ -770,6 +770,72 @@ st_theme_node_lookup_double (StThemeNode *node,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* st_theme_node_lookup_time:
|
||||||
|
* @node: a #StThemeNode
|
||||||
|
* @property_name: The name of the time property
|
||||||
|
* @inherit: if %TRUE, if a value is not found for the property on the
|
||||||
|
* node, then it will be looked up on the parent node, and then on the
|
||||||
|
* parent's parent, and so forth. Note that if the property has a
|
||||||
|
* value of 'inherit' it will be inherited even if %FALSE is passed
|
||||||
|
* in for @inherit; this only affects the default behavior for inheritance.
|
||||||
|
* @value: (out): location to store the value that was determined.
|
||||||
|
* If the property is not found, the value in this location
|
||||||
|
* will not be changed.
|
||||||
|
*
|
||||||
|
* Generically looks up a property containing a single time value,
|
||||||
|
* which is converted to milliseconds.
|
||||||
|
*
|
||||||
|
* Return value: %TRUE if the property was found in the properties for this
|
||||||
|
* theme node (or in the properties of parent nodes when inheriting.)
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
st_theme_node_lookup_time (StThemeNode *node,
|
||||||
|
const char *property_name,
|
||||||
|
gboolean inherit,
|
||||||
|
double *value)
|
||||||
|
{
|
||||||
|
gboolean result = FALSE;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
ensure_properties (node);
|
||||||
|
|
||||||
|
for (i = node->n_properties - 1; i >= 0; i--)
|
||||||
|
{
|
||||||
|
CRDeclaration *decl = node->properties[i];
|
||||||
|
|
||||||
|
if (strcmp (decl->property->stryng->str, property_name) == 0)
|
||||||
|
{
|
||||||
|
CRTerm *term = decl->value;
|
||||||
|
|
||||||
|
if (term->type != TERM_NUMBER)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
switch (term->content.num->type)
|
||||||
|
{
|
||||||
|
case NUM_TIME_S:
|
||||||
|
*value = 1000 * term->content.num->val;
|
||||||
|
result = TRUE;
|
||||||
|
break;
|
||||||
|
case NUM_TIME_MS:
|
||||||
|
*value = term->content.num->val;
|
||||||
|
result = TRUE;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!result && inherit && node->parent_node)
|
||||||
|
result = st_theme_node_lookup_time (node->parent_node, property_name, inherit, value);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* st_theme_node_get_double:
|
* st_theme_node_get_double:
|
||||||
* @node: a #StThemeNode
|
* @node: a #StThemeNode
|
||||||
@ -2063,7 +2129,7 @@ st_theme_node_get_transition_duration (StThemeNode *node)
|
|||||||
if (node->transition_duration > -1)
|
if (node->transition_duration > -1)
|
||||||
return st_slow_down_factor * node->transition_duration;
|
return st_slow_down_factor * node->transition_duration;
|
||||||
|
|
||||||
st_theme_node_lookup_double (node, "transition-duration", FALSE, &value);
|
st_theme_node_lookup_time (node, "transition-duration", FALSE, &value);
|
||||||
|
|
||||||
node->transition_duration = (int)value;
|
node->transition_duration = (int)value;
|
||||||
|
|
||||||
|
@ -134,6 +134,10 @@ gboolean st_theme_node_lookup_length (StThemeNode *node,
|
|||||||
const char *property_name,
|
const char *property_name,
|
||||||
gboolean inherit,
|
gboolean inherit,
|
||||||
gdouble *length);
|
gdouble *length);
|
||||||
|
gboolean st_theme_node_lookup_time (StThemeNode *node,
|
||||||
|
const char *property_name,
|
||||||
|
gboolean inherit,
|
||||||
|
gdouble *value);
|
||||||
gboolean st_theme_node_lookup_shadow (StThemeNode *node,
|
gboolean st_theme_node_lookup_shadow (StThemeNode *node,
|
||||||
const char *property_name,
|
const char *property_name,
|
||||||
gboolean inherit,
|
gboolean inherit,
|
||||||
|
Loading…
Reference in New Issue
Block a user