EINTERN void e_client_focused_set(E_Client *ec);
static void _e_client_transient_for_group_make(E_Client *ec, Eina_List **list);
static void _e_client_transform_core_update_with_zoom(E_Client *ec, double zoomx, double zoomy, int cx, int cy);
+static Evas_Object *_e_client_resize_object_create(E_Client *ec);
+static void _e_client_resize_object_del(E_Client *ec);
static Eina_Inlist *_e_client_hooks[] =
{
e_util_transform_del(ec->desk_group.transform);
ec->desk_group.transform = NULL;
+ _e_client_resize_object_del(ec);
+
e_client_visibility_calculate();
}
}
}
+static Evas_Object *
+_e_client_resize_object_create(E_Client *ec)
+{
+ Evas_Object *resize_obj;
+ resize_obj = evas_object_rectangle_add(ec->frame);
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(resize_obj, NULL);
+
+ evas_object_pass_events_set(resize_obj, EINA_TRUE);
+ evas_object_layer_set(resize_obj, evas_object_layer_get(ec->frame));
+ evas_object_stack_above(resize_obj, ec->frame);
+ evas_object_color_set(resize_obj, 128, 128, 128, 100);
+ evas_object_name_set(resize_obj, "resize_object");
+
+ return resize_obj;
+}
+
+static void
+_e_client_resize_object_del(E_Client *ec)
+{
+ EINA_SAFETY_ON_NULL_RETURN(ec);
+ EINA_SAFETY_ON_NULL_RETURN(ec->manage_resize.resize_obj);
+
+ evas_object_hide(ec->manage_resize.resize_obj);
+ evas_object_del(ec->manage_resize.resize_obj);
+ ec->manage_resize.resize_obj = NULL;
+}
+
static void
_e_client_resize_handle(E_Client *ec)
{
(ec->resize_mode == E_POINTER_RESIZE_TR))
new_y += (h - new_h);
- evas_object_geometry_set(ec->frame, new_x, new_y, new_w, new_h);
+ if (ec->manage_resize.resize_obj == NULL)
+ {
+ ec->manage_resize.resize_obj = _e_client_resize_object_create(ec);
+ EINA_SAFETY_ON_NULL_RETURN(ec->manage_resize.resize_obj);
+ }
+
+ evas_object_geometry_set(ec->manage_resize.resize_obj, new_x, new_y, new_w, new_h);
+ evas_object_show(ec->manage_resize.resize_obj);
+
+ ec->manage_resize.x = new_x;
+ ec->manage_resize.y = new_y;
+ ec->manage_resize.w = new_w;
+ ec->manage_resize.h = new_h;
}
static int
ecresize = NULL;
+ if (ec->manage_resize.resize_obj)
+ {
+ evas_object_geometry_set(ec->frame,
+ ec->manage_resize.x,
+ ec->manage_resize.y,
+ ec->manage_resize.w,
+ ec->manage_resize.h);
+ _e_client_resize_object_del(ec);
+ }
+
return 1;
}
_e_client_hook_call(E_CLIENT_HOOK_NEW_CLIENT_POST, ec);
#endif
+ ec->manage_resize.resize_obj = NULL;
+ ec->manage_resize.x = ec->manage_resize.y = ec->manage_resize.w = ec->manage_resize.h = 0;
+
return ec;
}