forked from enlightenment/efl
parent
ab76814442
commit
e5fe3c4400
|
@ -991,61 +991,67 @@ _ecore_evas_x_rotation_set(Ecore_Evas *ee, int rotation)
|
|||
if (!einfo) return;
|
||||
rot_dif = ee->rotation - rotation;
|
||||
if (rot_dif < 0) rot_dif = -rot_dif;
|
||||
if (rot_dif != 180)
|
||||
{
|
||||
int minw, minh, maxw, maxh, basew, baseh, stepw, steph;
|
||||
|
||||
einfo->info.rotation = rotation;
|
||||
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
|
||||
if (!ee->prop.fullscreen)
|
||||
if (!strcmp(ee->driver, "software_x11"))
|
||||
{
|
||||
#ifdef BUILD_ECORE_X
|
||||
Evas_Engine_Info_Software_X11 *einfo;
|
||||
if (rot_dif != 180)
|
||||
{
|
||||
ecore_x_window_resize(ee->engine.x.win_container, ee->h, ee->w);
|
||||
ee->expecting_resize.w = ee->h;
|
||||
ee->expecting_resize.h = ee->w;
|
||||
}
|
||||
else
|
||||
{
|
||||
int w, h;
|
||||
int minw, minh, maxw, maxh, basew, baseh, stepw, steph;
|
||||
|
||||
ecore_x_window_size_get(ee->engine.x.win_container, &w, &h);
|
||||
ecore_x_window_resize(ee->engine.x.win_container, h, w);
|
||||
if ((rotation == 0) || (rotation == 180))
|
||||
einfo->info.rotation = rotation;
|
||||
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
|
||||
if (!ee->prop.fullscreen)
|
||||
{
|
||||
evas_output_size_set(ee->evas, ee->w, ee->h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
|
||||
ecore_x_window_resize(ee->engine.x.win_container, ee->h, ee->w);
|
||||
ee->expecting_resize.w = ee->h;
|
||||
ee->expecting_resize.h = ee->w;
|
||||
}
|
||||
else
|
||||
{
|
||||
evas_output_size_set(ee->evas, ee->h, ee->w);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
|
||||
int w, h;
|
||||
|
||||
ecore_x_window_size_get(ee->engine.x.win_container, &w, &h);
|
||||
ecore_x_window_resize(ee->engine.x.win_container, h, w);
|
||||
if ((rotation == 0) || (rotation == 180))
|
||||
{
|
||||
evas_output_size_set(ee->evas, ee->w, ee->h);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, ee->w, ee->h);
|
||||
}
|
||||
else
|
||||
{
|
||||
evas_output_size_set(ee->evas, ee->h, ee->w);
|
||||
evas_output_viewport_set(ee->evas, 0, 0, ee->h, ee->w);
|
||||
}
|
||||
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
||||
}
|
||||
ecore_evas_size_min_get(ee, &minw, &minh);
|
||||
ecore_evas_size_max_get(ee, &maxw, &maxh);
|
||||
ecore_evas_size_base_get(ee, &basew, &baseh);
|
||||
ecore_evas_size_step_get(ee, &stepw, &steph);
|
||||
ee->rotation = rotation;
|
||||
ecore_evas_size_min_set(ee, minh, minw);
|
||||
ecore_evas_size_max_set(ee, maxh, maxw);
|
||||
ecore_evas_size_base_set(ee, baseh, basew);
|
||||
ecore_evas_size_step_set(ee, steph, stepw);
|
||||
_ecore_evas_x_mouse_move_process(ee, ee->mouse.x, ee->mouse.y,
|
||||
ecore_x_current_time_get());
|
||||
}
|
||||
else
|
||||
{
|
||||
einfo->info.rotation = rotation;
|
||||
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
|
||||
ee->rotation = rotation;
|
||||
_ecore_evas_x_mouse_move_process(ee, ee->mouse.x, ee->mouse.y,
|
||||
ecore_x_current_time_get());
|
||||
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
||||
}
|
||||
ecore_evas_size_min_get(ee, &minw, &minh);
|
||||
ecore_evas_size_max_get(ee, &maxw, &maxh);
|
||||
ecore_evas_size_base_get(ee, &basew, &baseh);
|
||||
ecore_evas_size_step_get(ee, &stepw, &steph);
|
||||
ee->rotation = rotation;
|
||||
ecore_evas_size_min_set(ee, minh, minw);
|
||||
ecore_evas_size_max_set(ee, maxh, maxw);
|
||||
ecore_evas_size_base_set(ee, baseh, basew);
|
||||
ecore_evas_size_step_set(ee, steph, stepw);
|
||||
_ecore_evas_x_mouse_move_process(ee, ee->mouse.x, ee->mouse.y,
|
||||
ecore_x_current_time_get());
|
||||
if ((ee->rotation == 90) || (ee->rotation == 270))
|
||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->h, ee->w);
|
||||
else
|
||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
einfo->info.rotation = rotation;
|
||||
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
|
||||
ee->rotation = rotation;
|
||||
_ecore_evas_x_mouse_move_process(ee, ee->mouse.x, ee->mouse.y,
|
||||
ecore_x_current_time_get());
|
||||
if (ee->func.fn_resize) ee->func.fn_resize(ee);
|
||||
}
|
||||
if ((ee->rotation == 90) || (ee->rotation == 270))
|
||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->h, ee->w);
|
||||
else
|
||||
evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -1055,6 +1061,7 @@ _ecore_evas_x_shaped_set(Ecore_Evas *ee, int shaped)
|
|||
return;
|
||||
if (!strcmp(ee->driver, "software_x11"))
|
||||
{
|
||||
#ifdef BUILD_ECORE_X
|
||||
Evas_Engine_Info_Software_X11 *einfo;
|
||||
|
||||
ee->shaped = shaped;
|
||||
|
@ -1088,9 +1095,11 @@ _ecore_evas_x_shaped_set(Ecore_Evas *ee, int shaped)
|
|||
ecore_x_window_shape_mask_set(ee->engine.x.win_container, 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else if (!strcmp(ee->driver, "xrender_x11"))
|
||||
{
|
||||
#ifdef BUILD_ECORE_EVAS_XRENDER
|
||||
Evas_Engine_Info_XRender_X11 *einfo;
|
||||
|
||||
ee->shaped = shaped;
|
||||
|
@ -1124,6 +1133,7 @@ _ecore_evas_x_shaped_set(Ecore_Evas *ee, int shaped)
|
|||
ecore_x_window_shape_mask_set(ee->engine.x.win_container, 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue