From 127c7b78e26dd5a895231ff3c9e8143f125a1090 Mon Sep 17 00:00:00 2001 From: Nick Gasson Date: Sat, 6 Nov 2010 14:58:25 +0000 Subject: [PATCH] Position bubble on left side when --left specified --- src/display_cow.c | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/src/display_cow.c b/src/display_cow.c index 2a26dc2..9dca04b 100644 --- a/src/display_cow.c +++ b/src/display_cow.c @@ -268,6 +268,8 @@ void display_cow(bool debug, const char *text, bool run_main, cowmode_t mode) exit(1); } + xcowsay.bubble = make_shape_from_pixbuf(xcowsay.bubble_pixbuf); + int total_width = shape_width(xcowsay.cow) + get_int_option("bubble_x") + xcowsay.bubble_width; @@ -297,19 +299,33 @@ void display_cow(bool debug, const char *text, bool run_main, cowmode_t mode) else if (cow_y >= area_h) cow_y = area_h - 1; - move_shape(xcowsay.cow, - geom.x + cow_x, - geom.y + bubble_off + cow_y); - show_shape(xcowsay.cow); - - xcowsay.bubble = make_shape_from_pixbuf(xcowsay.bubble_pixbuf); - int bx = shape_x(xcowsay.cow) + shape_width(xcowsay.cow) - + get_int_option("bubble_x"); - int by = shape_y(xcowsay.cow) - + (shape_height(xcowsay.cow) - shape_height(xcowsay.bubble))/2 - + get_int_option("bubble_y"); - move_shape(xcowsay.bubble, bx, by); - + if (get_bool_option("left")) { + move_shape(xcowsay.cow, + geom.x + cow_x + xcowsay.bubble_width, + geom.y + bubble_off + cow_y); + show_shape(xcowsay.cow); + + int bx = shape_x(xcowsay.cow) - xcowsay.bubble_width + + get_int_option("bubble_x"); + int by = shape_y(xcowsay.cow) + + (shape_height(xcowsay.cow) - shape_height(xcowsay.bubble))/2 + + get_int_option("bubble_y"); + move_shape(xcowsay.bubble, bx, by); + } + else { + move_shape(xcowsay.cow, + geom.x + cow_x, + geom.y + bubble_off + cow_y); + show_shape(xcowsay.cow); + + int bx = shape_x(xcowsay.cow) + shape_width(xcowsay.cow) + + get_int_option("bubble_x"); + int by = shape_y(xcowsay.cow) + + (shape_height(xcowsay.cow) - shape_height(xcowsay.bubble))/2 + + get_int_option("bubble_y"); + move_shape(xcowsay.bubble, bx, by); + } + xcowsay.state = csLeadIn; xcowsay.transition_timeout = get_int_option("lead_in_time"); g_timeout_add(TICK_TIMEOUT, tick, NULL); -- 2.39.2