diff options
Diffstat (limited to 'source/theme.c')
-rw-r--r-- | source/theme.c | 26 |
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; |