diff options
Diffstat (limited to 'source/theme.c')
-rw-r--r-- | source/theme.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/source/theme.c b/source/theme.c index c467fd77..984e10a8 100644 --- a/source/theme.c +++ b/source/theme.c @@ -285,7 +285,7 @@ static void rofi_theme_print_distance_unit(RofiDistanceUnit *unit) { } else if (unit->modtype == ROFI_DISTANCE_MODIFIER_MULTIPLY) { fputs(" * ", stdout); } else if (unit->modtype == ROFI_DISTANCE_MODIFIER_MODULO) { - fputs(" % ", stdout); + fputs(" modulo ", stdout); } else if (unit->modtype == ROFI_DISTANCE_MODIFIER_MIN) { fputs(" min ", stdout); } else if (unit->modtype == ROFI_DISTANCE_MODIFIER_MAX) { @@ -1336,8 +1336,8 @@ RofiHighlightColorStyle rofi_theme_get_highlight(widget *widget, } return rofi_theme_get_highlight_inside(p, widget, property, th); } -static int get_pixels(RofiDistanceUnit *unit, RofiOrientation ori) { - int val = unit->distance; +static double get_pixels(RofiDistanceUnit *unit, RofiOrientation ori) { + double val = unit->distance; if (unit->type == ROFI_PU_EM) { val = unit->distance * textbox_get_estimated_char_height(); @@ -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; |