return ho;
}
-static inline void apply_orientation(int degree, int *x, int *y)
+static inline void apply_orientation(int degree, int *x, int *y, input_event_source_e source)
{
int _x;
int _y;
int _angle;
+ if (source == INPUT_EVENT_SOURCE_VIEWER) {
+ /* Already rotated */
+ return;
+ }
+
switch (degree) {
case 0:
return;
evas_event_feed_mouse_out(info->e, timestamp, NULL);
break;
case WIDGET_BUFFER_EVENT_DOWN:
- apply_orientation(info->orientation, &event_info->info.pointer.x, &event_info->info.pointer.y);
+ apply_orientation(info->orientation, &event_info->info.pointer.x, &event_info->info.pointer.y, event_info->info.pointer.source);
if (info->pressed) {
ErrPrint("MOUSE UP is not called\n");
ErrPrint("DOWN[%s] %dx%d - %lf\n", info->id, event_info->info.pointer.x, event_info->info.pointer.y, timestamp);
break;
case WIDGET_BUFFER_EVENT_MOVE:
- apply_orientation(info->orientation, &event_info->info.pointer.x, &event_info->info.pointer.y);
+ apply_orientation(info->orientation, &event_info->info.pointer.x, &event_info->info.pointer.y, event_info->info.pointer.source);
/**
* @note
* Calculate the event occurred X & Y on the buffer
evas_event_feed_mouse_move(info->e, event_info->info.pointer.x, event_info->info.pointer.y, timestamp, NULL);
break;
case WIDGET_BUFFER_EVENT_UP:
- apply_orientation(info->orientation, &event_info->info.pointer.x, &event_info->info.pointer.y);
+ apply_orientation(info->orientation, &event_info->info.pointer.x, &event_info->info.pointer.y, event_info->info.pointer.source);
evas_event_feed_mouse_move(info->e, event_info->info.pointer.x, event_info->info.pointer.y, timestamp, NULL);
evas_event_feed_mouse_up(info->e, 1, EVAS_BUTTON_NONE, timestamp, NULL);
info->pressed = 0;