summaryrefslogtreecommitdiffstats
path: root/source/theme.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/theme.c')
-rw-r--r--source/theme.c26
1 files changed, 13 insertions, 13 deletions
diff --git a/source/theme.c b/source/theme.c
index c467fd77..0f14edbf 100644
--- a/source/theme.c
+++ b/source/theme.c
@@ -1359,7 +1359,7 @@ static int get_pixels(RofiDistanceUnit *unit, RofiOrientation ori) {
return val;
}
-static int distance_unit_get_pixel(RofiDistanceUnit *unit,
+static double distance_unit_get_pixel(RofiDistanceUnit *unit,
RofiOrientation ori) {
switch (unit->modtype) {
case ROFI_DISTANCE_MODIFIER_GROUP:
@@ -1375,45 +1375,45 @@ static int distance_unit_get_pixel(RofiDistanceUnit *unit,
return distance_unit_get_pixel(unit->left, ori) *
distance_unit_get_pixel(unit->right, ori);
case ROFI_DISTANCE_MODIFIER_DIVIDE: {
- int a = distance_unit_get_pixel(unit->left, ori);
- int b = distance_unit_get_pixel(unit->right, ori);
+ double a = distance_unit_get_pixel(unit->left, ori);
+ double b = distance_unit_get_pixel(unit->right, ori);
if (b != 0) {
return a / b;
}
return a;
}
case ROFI_DISTANCE_MODIFIER_MODULO: {
- int a = distance_unit_get_pixel(unit->left, ori);
- int b = distance_unit_get_pixel(unit->right, ori);
+ double a = distance_unit_get_pixel(unit->left, ori);
+ double b = distance_unit_get_pixel(unit->right, ori);
if (b != 0) {
- return a % b;
+ return fmod(a, b);
}
return 0;
}
case ROFI_DISTANCE_MODIFIER_MIN: {
- int a = distance_unit_get_pixel(unit->left, ori);
- int b = distance_unit_get_pixel(unit->right, ori);
+ double a = distance_unit_get_pixel(unit->left, ori);
+ double b = distance_unit_get_pixel(unit->right, ori);
return MIN(a, b);
}
case ROFI_DISTANCE_MODIFIER_MAX: {
- int a = distance_unit_get_pixel(unit->left, ori);
- int b = distance_unit_get_pixel(unit->right, ori);
+ double a = distance_unit_get_pixel(unit->left, ori);
+ double b = distance_unit_get_pixel(unit->right, ori);
return MAX(a, b);
}
case ROFI_DISTANCE_MODIFIER_ROUND: {
double a = (double)distance_unit_get_pixel(unit->left, ori);
double b = (double)distance_unit_get_pixel(unit->right, ori);
- return (int)(round(a / b) * b);
+ return (double)(round(a / b) * b);
}
case ROFI_DISTANCE_MODIFIER_CEIL: {
double a = (double)distance_unit_get_pixel(unit->left, ori);
double b = (double)distance_unit_get_pixel(unit->right, ori);
- return (int)(ceil(a / b) * b);
+ return (double)(ceil(a / b) * b);
}
case ROFI_DISTANCE_MODIFIER_FLOOR: {
double a = (double)distance_unit_get_pixel(unit->left, ori);
double b = (double)distance_unit_get_pixel(unit->right, ori);
- return (int)(floor(a / b) * b);
+ return (double)(floor(a / b) * b);
}
default:
break;