forked from enlightenment/enlightenment
Fix "mini clone" movement when a monitor moves.
Fix "mini clone" movement when a monitor resizes. Signed-off-by: Christopher Michael <cp.michael@samsung.com> SVN revision: 81122
This commit is contained in:
parent
b22ac9e803
commit
f224102a0b
|
@ -478,6 +478,8 @@ e_smart_monitor_clone_add(Evas_Object *obj, Evas_Object *mon)
|
||||||
e_theme_edje_object_set(msd->o_clone, "base/theme/widgets",
|
e_theme_edje_object_set(msd->o_clone, "base/theme/widgets",
|
||||||
"e/conf/randr/main/mini");
|
"e/conf/randr/main/mini");
|
||||||
|
|
||||||
|
evas_object_data_set(msd->o_clone, "smart_data", msd);
|
||||||
|
|
||||||
edje_object_part_unswallow(msd->o_frame, msd->o_thumb);
|
edje_object_part_unswallow(msd->o_frame, msd->o_thumb);
|
||||||
evas_object_hide(msd->o_thumb);
|
evas_object_hide(msd->o_thumb);
|
||||||
|
|
||||||
|
@ -775,6 +777,8 @@ static void
|
||||||
_e_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
_e_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
{
|
{
|
||||||
E_Smart_Data *sd;
|
E_Smart_Data *sd;
|
||||||
|
Eina_List *l;
|
||||||
|
Evas_Object *mclone;
|
||||||
|
|
||||||
/* try to get the objects smart data */
|
/* try to get the objects smart data */
|
||||||
if (!(sd = evas_object_smart_data_get(obj))) return;
|
if (!(sd = evas_object_smart_data_get(obj))) return;
|
||||||
|
@ -792,12 +796,27 @@ _e_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
|
|
||||||
/* apply any existing rotation */
|
/* apply any existing rotation */
|
||||||
_e_smart_monitor_map_apply(sd->o_frame, sd->current.rotation);
|
_e_smart_monitor_map_apply(sd->o_frame, sd->current.rotation);
|
||||||
|
|
||||||
|
/* loop the clones and update their rotation */
|
||||||
|
EINA_LIST_FOREACH(sd->clones, l, mclone)
|
||||||
|
{
|
||||||
|
E_Smart_Data *msd;
|
||||||
|
|
||||||
|
/* try to get the clones smart data */
|
||||||
|
if (!(msd = evas_object_data_get(mclone, "smart_data")))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* apply existing rotation to mini */
|
||||||
|
_e_smart_monitor_map_apply(mclone, msd->current.rotation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
_e_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
{
|
{
|
||||||
E_Smart_Data *sd;
|
E_Smart_Data *sd;
|
||||||
|
Eina_List *l;
|
||||||
|
Evas_Object *mclone;
|
||||||
|
|
||||||
/* try to get the objects smart data */
|
/* try to get the objects smart data */
|
||||||
if (!(sd = evas_object_smart_data_get(obj))) return;
|
if (!(sd = evas_object_smart_data_get(obj))) return;
|
||||||
|
@ -815,6 +834,19 @@ _e_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
|
|
||||||
/* apply any existing rotation */
|
/* apply any existing rotation */
|
||||||
_e_smart_monitor_map_apply(sd->o_frame, sd->current.rotation);
|
_e_smart_monitor_map_apply(sd->o_frame, sd->current.rotation);
|
||||||
|
|
||||||
|
/* loop the clones and update their rotation */
|
||||||
|
EINA_LIST_FOREACH(sd->clones, l, mclone)
|
||||||
|
{
|
||||||
|
E_Smart_Data *msd;
|
||||||
|
|
||||||
|
/* try to get the clones smart data */
|
||||||
|
if (!(msd = evas_object_data_get(mclone, "smart_data")))
|
||||||
|
continue;
|
||||||
|
|
||||||
|
/* apply existing rotation to mini */
|
||||||
|
_e_smart_monitor_map_apply(mclone, msd->current.rotation);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue