#endif
int button_down = 0, button_down_x = -1000, button_down_y = -1000, shift_pressed = 0, button_num = 1;
int brush_size;
-int highlight = 0, preview = 0, rendered = 0, move_mode = 0, fill_mode = 0, flowview = 0;
+int highlight = 0, preview = 0, rendered = 0, draw_mode = 1, move_mode = 0, fill_mode = 0, pick_mode = 0, flowview = 0;
int mouse_over_palette_area = 0, mouse_over_drawing_area = 0, mouse_over_timeline_area = 0;
#define min(x,y) ((x < y) ? x : y)
#define abs(x,y) ((x < y) ? y - x : x - y)
}
if ((state & (GDK_BUTTON1_MASK | GDK_BUTTON2_MASK | GDK_BUTTON3_MASK))) {
- if (button_down) {
+ if (button_down && pick_mode) {
+ pick_color(x, y);
+ }
+ if (button_down && !pick_mode) {
if (move_mode) {
move_mark((x-button_down_x)*16/img_scale_x, (y-button_down_y)*16/img_scale_y);
draw_image(0, 0, -1, -1);
- } else {
+ } else
+ if (draw_mode) {
draw_line(x, y, button_num == 1);
}
}
} else {
+ if (button_down && pick_mode)
+ release_pick_mode();
button_down = 0;
}
y = event->y;
button_num = event->button;
- if (!button_down)
+ if (!button_down && !pick_mode)
copy_mark_to_undo();
+ if (pick_mode) {
+ pick_color(x, y);
+ } else
if (fill_mode) {
+ if (button_down)
+ return TRUE;
fill(x, y, event->button != 1);
draw_image(0, 0, -1, -1);
} else
return TRUE;
button_down_x = x;
button_down_y = y;
- } else {
+ } else
+ if (draw_mode) {
/* if not shift, draw a dot and not a line */
if (!shift_pressed || button_down_x == -1000) {
button_down_x = x;