Add hidden, hide and show to views
This commit is contained in:
parent
ab1e95bef3
commit
460ec217dd
4 changed files with 43 additions and 1 deletions
|
@ -40,6 +40,7 @@ struct kiwmi_view {
|
||||||
double y;
|
double y;
|
||||||
|
|
||||||
bool mapped;
|
bool mapped;
|
||||||
|
bool hidden;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct kiwmi_view_impl {
|
struct kiwmi_view_impl {
|
||||||
|
|
|
@ -97,7 +97,7 @@ output_frame_notify(struct wl_listener *listener, void *data)
|
||||||
|
|
||||||
struct kiwmi_view *view;
|
struct kiwmi_view *view;
|
||||||
wl_list_for_each_reverse (view, &desktop->views, link) {
|
wl_list_for_each_reverse (view, &desktop->views, link) {
|
||||||
if (!view->mapped) {
|
if (view->hidden || !view->mapped) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -124,6 +124,10 @@ view_at(
|
||||||
{
|
{
|
||||||
struct kiwmi_view *view;
|
struct kiwmi_view *view;
|
||||||
wl_list_for_each (view, &desktop->views, link) {
|
wl_list_for_each (view, &desktop->views, link) {
|
||||||
|
if (view->hidden || !view->mapped) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (surface_at(view, surface, lx, ly, sx, sy)) {
|
if (surface_at(view, surface, lx, ly, sx, sy)) {
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
@ -148,6 +152,7 @@ view_create(
|
||||||
view->type = type;
|
view->type = type;
|
||||||
view->impl = impl;
|
view->impl = impl;
|
||||||
view->mapped = false;
|
view->mapped = false;
|
||||||
|
view->hidden = true;
|
||||||
|
|
||||||
view->x = 0;
|
view->x = 0;
|
||||||
view->y = 0;
|
view->y = 0;
|
||||||
|
|
36
kiwmi/luak.c
36
kiwmi/luak.c
|
@ -97,6 +97,28 @@ l_kiwmi_view_focus(lua_State *L)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
l_kiwmi_view_hidden(lua_State *L)
|
||||||
|
{
|
||||||
|
struct kiwmi_view *view =
|
||||||
|
*(struct kiwmi_view **)luaL_checkudata(L, 1, "kiwmi_view");
|
||||||
|
|
||||||
|
lua_pushboolean(L, view->hidden);
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
l_kiwmi_view_hide(lua_State *L)
|
||||||
|
{
|
||||||
|
struct kiwmi_view *view =
|
||||||
|
*(struct kiwmi_view **)luaL_checkudata(L, 1, "kiwmi_view");
|
||||||
|
|
||||||
|
view->hidden = true;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
l_kiwmi_view_move(lua_State *L)
|
l_kiwmi_view_move(lua_State *L)
|
||||||
{
|
{
|
||||||
|
@ -112,10 +134,24 @@ l_kiwmi_view_move(lua_State *L)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
l_kiwmi_view_show(lua_State *L)
|
||||||
|
{
|
||||||
|
struct kiwmi_view *view =
|
||||||
|
*(struct kiwmi_view **)luaL_checkudata(L, 1, "kiwmi_view");
|
||||||
|
|
||||||
|
view->hidden = false;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static const luaL_Reg kiwmi_view_methods[] = {
|
static const luaL_Reg kiwmi_view_methods[] = {
|
||||||
{"close", l_kiwmi_view_close},
|
{"close", l_kiwmi_view_close},
|
||||||
{"focus", l_kiwmi_view_focus},
|
{"focus", l_kiwmi_view_focus},
|
||||||
|
{"hidden", l_kiwmi_view_hidden},
|
||||||
|
{"hide", l_kiwmi_view_hide},
|
||||||
{"move", l_kiwmi_view_move},
|
{"move", l_kiwmi_view_move},
|
||||||
|
{"show", l_kiwmi_view_show},
|
||||||
{NULL, NULL},
|
{NULL, NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue