forked from enlightenment/efl
elm/wayland: Fix window resize when the window is rotated.
This commit is contained in:
parent
07b420b776
commit
028fcf8827
|
@ -2110,6 +2110,30 @@ _elm_win_frame_cb_move_start(void *data,
|
||||||
ecore_evas_wayland_move(sd->ee, sd->screen.x, sd->screen.y);
|
ecore_evas_wayland_move(sd->ee, sd->screen.x, sd->screen.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef HAVE_ELEMENTARY_WAYLAND
|
||||||
|
struct _resize_info
|
||||||
|
{
|
||||||
|
const char *name;
|
||||||
|
int location;
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct _resize_info _border_side[4] =
|
||||||
|
{
|
||||||
|
{ ELM_CURSOR_TOP_SIDE, 1 },
|
||||||
|
{ ELM_CURSOR_LEFT_SIDE, 4 },
|
||||||
|
{ ELM_CURSOR_BOTTOM_SIDE, 2 },
|
||||||
|
{ ELM_CURSOR_RIGHT_SIDE, 8 },
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct _resize_info _border_corner[4] =
|
||||||
|
{
|
||||||
|
{ ELM_CURSOR_TOP_LEFT_CORNER, 5 },
|
||||||
|
{ ELM_CURSOR_BOTTOM_LEFT_CORNER, 6 },
|
||||||
|
{ ELM_CURSOR_BOTTOM_RIGHT_CORNER, 10 },
|
||||||
|
{ ELM_CURSOR_TOP_RIGHT_CORNER, 9 },
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_elm_win_frame_cb_resize_show(void *data,
|
_elm_win_frame_cb_resize_show(void *data,
|
||||||
Evas_Object *obj __UNUSED__,
|
Evas_Object *obj __UNUSED__,
|
||||||
|
@ -2122,26 +2146,32 @@ _elm_win_frame_cb_resize_show(void *data,
|
||||||
if (sd->resizing) return;
|
if (sd->resizing) return;
|
||||||
|
|
||||||
#ifdef HAVE_ELEMENTARY_WAYLAND
|
#ifdef HAVE_ELEMENTARY_WAYLAND
|
||||||
|
int i;
|
||||||
|
i = sd->rot / 90;
|
||||||
if (!strcmp(source, "elm.event.resize.t"))
|
if (!strcmp(source, "elm.event.resize.t"))
|
||||||
ecore_wl_window_cursor_from_name_set(sd->wl.win, ELM_CURSOR_TOP_SIDE);
|
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
||||||
|
_border_side[(0 + i) % 4].name);
|
||||||
else if (!strcmp(source, "elm.event.resize.b"))
|
else if (!strcmp(source, "elm.event.resize.b"))
|
||||||
ecore_wl_window_cursor_from_name_set(sd->wl.win, ELM_CURSOR_BOTTOM_SIDE);
|
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
||||||
|
_border_side[(2 + i) % 4].name);
|
||||||
else if (!strcmp(source, "elm.event.resize.l"))
|
else if (!strcmp(source, "elm.event.resize.l"))
|
||||||
ecore_wl_window_cursor_from_name_set(sd->wl.win, ELM_CURSOR_LEFT_SIDE);
|
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
||||||
|
_border_side[(1 + i) % 4].name);
|
||||||
else if (!strcmp(source, "elm.event.resize.r"))
|
else if (!strcmp(source, "elm.event.resize.r"))
|
||||||
ecore_wl_window_cursor_from_name_set(sd->wl.win, ELM_CURSOR_RIGHT_SIDE);
|
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
||||||
|
_border_side[(3 + i) % 4].name);
|
||||||
else if (!strcmp(source, "elm.event.resize.tl"))
|
else if (!strcmp(source, "elm.event.resize.tl"))
|
||||||
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
||||||
ELM_CURSOR_TOP_LEFT_CORNER);
|
_border_corner[(0 + i) % 4].name);
|
||||||
else if (!strcmp(source, "elm.event.resize.tr"))
|
else if (!strcmp(source, "elm.event.resize.tr"))
|
||||||
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
||||||
ELM_CURSOR_TOP_RIGHT_CORNER);
|
_border_corner[(3 + i) % 4].name);
|
||||||
else if (!strcmp(source, "elm.event.resize.bl"))
|
else if (!strcmp(source, "elm.event.resize.bl"))
|
||||||
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
||||||
ELM_CURSOR_BOTTOM_LEFT_CORNER);
|
_border_corner[(1 + i) % 4].name);
|
||||||
else if (!strcmp(source, "elm.event.resize.br"))
|
else if (!strcmp(source, "elm.event.resize.br"))
|
||||||
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
ecore_wl_window_cursor_from_name_set(sd->wl.win,
|
||||||
ELM_CURSOR_BOTTOM_RIGHT_CORNER);
|
_border_corner[(2 + i) % 4].name);
|
||||||
else
|
else
|
||||||
ecore_wl_window_cursor_default_restore(sd->wl.win);
|
ecore_wl_window_cursor_default_restore(sd->wl.win);
|
||||||
#else
|
#else
|
||||||
|
@ -2171,34 +2201,37 @@ _elm_win_frame_cb_resize_start(void *data,
|
||||||
const char *sig __UNUSED__,
|
const char *sig __UNUSED__,
|
||||||
const char *source)
|
const char *source)
|
||||||
{
|
{
|
||||||
|
#ifdef HAVE_ELEMENTARY_WAYLAND
|
||||||
Elm_Win_Smart_Data *sd;
|
Elm_Win_Smart_Data *sd;
|
||||||
|
int i;
|
||||||
|
|
||||||
if (!(sd = data)) return;
|
if (!(sd = data)) return;
|
||||||
if (sd->resizing) return;
|
if (sd->resizing) return;
|
||||||
|
|
||||||
sd->resizing = EINA_TRUE;
|
sd->resizing = EINA_TRUE;
|
||||||
|
i = sd->rot / 90;
|
||||||
if (!strcmp(source, "elm.event.resize.t"))
|
if (!strcmp(source, "elm.event.resize.t"))
|
||||||
sd->resize_location = 1;
|
sd->resize_location = _border_side[(0 + i) % 4].location;
|
||||||
else if (!strcmp(source, "elm.event.resize.b"))
|
else if (!strcmp(source, "elm.event.resize.b"))
|
||||||
sd->resize_location = 2;
|
sd->resize_location = _border_side[(2 + i) % 4].location;
|
||||||
else if (!strcmp(source, "elm.event.resize.l"))
|
else if (!strcmp(source, "elm.event.resize.l"))
|
||||||
sd->resize_location = 4;
|
sd->resize_location = _border_side[(1 + i) % 4].location;
|
||||||
else if (!strcmp(source, "elm.event.resize.r"))
|
else if (!strcmp(source, "elm.event.resize.r"))
|
||||||
sd->resize_location = 8;
|
sd->resize_location = _border_side[(3 + i) % 4].location;
|
||||||
else if (!strcmp(source, "elm.event.resize.tl"))
|
else if (!strcmp(source, "elm.event.resize.tl"))
|
||||||
sd->resize_location = 5;
|
sd->resize_location = _border_corner[(0 + i) % 4].location;
|
||||||
else if (!strcmp(source, "elm.event.resize.tr"))
|
else if (!strcmp(source, "elm.event.resize.tr"))
|
||||||
sd->resize_location = 9;
|
sd->resize_location = _border_corner[(3 + i) % 4].location;
|
||||||
else if (!strcmp(source, "elm.event.resize.bl"))
|
else if (!strcmp(source, "elm.event.resize.bl"))
|
||||||
sd->resize_location = 6;
|
sd->resize_location = _border_corner[(1 + i) % 4].location;
|
||||||
else if (!strcmp(source, "elm.event.resize.br"))
|
else if (!strcmp(source, "elm.event.resize.br"))
|
||||||
sd->resize_location = 10;
|
sd->resize_location = _border_corner[(2 + i) % 4].location;
|
||||||
else
|
else
|
||||||
sd->resize_location = 0;
|
sd->resize_location = 0;
|
||||||
|
|
||||||
if (sd->resize_location > 0)
|
if (sd->resize_location > 0)
|
||||||
ecore_evas_wayland_resize(sd->ee, sd->resize_location);
|
ecore_evas_wayland_resize(sd->ee, sd->resize_location);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue