From 7a4571c47166e0ee738738161d35271c972ddb62 Mon Sep 17 00:00:00 2001 From: Rui Guo Date: Wed, 24 Jun 2009 22:29:09 +0800 Subject: [PATCH] Introduce canvas.showwin() interface. --- src/drafts/scripting | 3 +++ src/lua.c | 16 ++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/drafts/scripting b/src/drafts/scripting index adf676a..293acb8 100644 --- a/src/drafts/scripting +++ b/src/drafts/scripting @@ -284,6 +284,9 @@ Methods: select() Get input focus for this canvas. +showwin(win) + Show window 'win' on this canvas. + F. Screen This is a pseudo object standing for the whole screen object. All other diff --git a/src/lua.c b/src/lua.c index 94041c0..6155619 100644 --- a/src/lua.c +++ b/src/lua.c @@ -78,6 +78,7 @@ extern struct display *displays, *display; extern struct LayFuncs WinLf; extern struct layer *flayer; extern void AppendWinMsgRend(const char *str, const char *color); +extern void FocusCanvas(struct canvas *cv); static int LuaDispatch(void *handler, const char *params, va_list va); static int LuaRegEvent(lua_State *L); @@ -574,8 +575,23 @@ canvas_select(lua_State *L) return 0; } +static int +canvas_showwin(lua_State *L) +{ + struct canvas *c = check_canvas(L, 1); + if (lua_isnil(L, 2)) + SetCanvasWindow(c, 0); + else + { + struct win *w = check_window(L, 2); + SetCanvasWindow(c, w); + } + return 0; +} + static const luaL_reg canvas_methods[] = { {"select", canvas_select}, + {"showwin", canvas_showwin}, {0, 0} }; -- 2.11.4.GIT