Compare commits
No commits in common. "lua5.4" and "master" have entirely different histories.
4
Makefile
4
Makefile
|
@ -1,5 +1,5 @@
|
||||||
CFLAGS += `pkg-config --cflags cairo xcb lua54`
|
CFLAGS += `pkg-config --cflags cairo xcb lua53`
|
||||||
LDFLAGS := `pkg-config --libs cairo xcb lua54`
|
LDFLAGS := `pkg-config --libs cairo xcb lua53`
|
||||||
OBJECTS := obj/common.o obj/rootwindow.o obj/cairo_context.o obj/api_draw.o
|
OBJECTS := obj/common.o obj/rootwindow.o obj/cairo_context.o obj/api_draw.o
|
||||||
|
|
||||||
livewp: lib
|
livewp: lib
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "api_draw.h"
|
#include "api_draw.h"
|
||||||
#include <cairo/cairo.h>
|
#include <cairo/cairo.h>
|
||||||
#include <lua.h>
|
#include <lua5.3/lua.h>
|
||||||
#include <lauxlib.h>
|
#include <lua5.3/lauxlib.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
int api_draw_clear(lua_State *L);
|
int api_draw_clear(lua_State *L);
|
||||||
|
@ -24,9 +24,9 @@ bool loadapi_draw(lua_State *lua) {
|
||||||
{ "rect_fill", api_draw_rect_fill },
|
{ "rect_fill", api_draw_rect_fill },
|
||||||
{ "circle", api_draw_circle },
|
{ "circle", api_draw_circle },
|
||||||
{ "ring", api_draw_ring },
|
{ "ring", api_draw_ring },
|
||||||
{ NULL, NULL }
|
|
||||||
};
|
};
|
||||||
luaL_newlib(lua, api_draw);
|
lua_newtable(lua);
|
||||||
|
luaL_setfuncs(lua, api_draw, 0);
|
||||||
lua_setglobal(lua, "Draw");
|
lua_setglobal(lua, "Draw");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef _API_DRAW_H_
|
#ifndef _API_DRAW_H_
|
||||||
#define _API_DRAW_H_
|
#define _API_DRAW_H_
|
||||||
|
|
||||||
#include <lua.h>
|
#include <lua5.3/lua.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
|
|
||||||
bool loadapi_draw(lua_State *lua);
|
bool loadapi_draw(lua_State *lua);
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#ifndef _COMMON_H_
|
#ifndef _COMMON_H_
|
||||||
#define _COMMON_H_
|
#define _COMMON_H_
|
||||||
|
|
||||||
#include <lua.h>
|
#include <lua5.3/lua.h>
|
||||||
#include "cairo_context.h"
|
#include "cairo_context.h"
|
||||||
|
|
||||||
extern struct global_context {
|
extern struct global_context {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#include <lua.h>
|
#include <lua5.3/lua.h>
|
||||||
#include <luaconf.h>
|
#include <lua5.3/luaconf.h>
|
||||||
#include <lualib.h>
|
#include <lua5.3/lualib.h>
|
||||||
#include <lauxlib.h>
|
#include <lua5.3/lauxlib.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
|
@ -10,18 +10,12 @@
|
||||||
xcb_window_t find_subwindow(xcb_connection_t *connection, xcb_window_t win, int w, int h);
|
xcb_window_t find_subwindow(xcb_connection_t *connection, xcb_window_t win, int w, int h);
|
||||||
|
|
||||||
xcb_window_t create_root_window(xcb_connection_t *connection, xcb_screen_t *screen) {
|
xcb_window_t create_root_window(xcb_connection_t *connection, xcb_screen_t *screen) {
|
||||||
fprintf(stderr, "DBG: screen root WID=0x%08x\n", screen->root);
|
|
||||||
|
|
||||||
xcb_window_t root = find_subwindow(connection, screen->root, -1, -1);
|
xcb_window_t root = find_subwindow(connection, screen->root, -1, -1);
|
||||||
if (!root) return 0;
|
if (!root) return 0;
|
||||||
|
|
||||||
fprintf(stderr, "DBG: root WID=0x%08x\n", root);
|
|
||||||
|
|
||||||
xcb_window_t parent = find_subwindow(connection, root, screen->width_in_pixels, screen->height_in_pixels);
|
xcb_window_t parent = find_subwindow(connection, root, screen->width_in_pixels, screen->height_in_pixels);
|
||||||
if (!parent) return 0;
|
if (!parent) return 0;
|
||||||
|
|
||||||
fprintf(stderr, "DBG: parent WID=0x%08x\n", parent);
|
|
||||||
|
|
||||||
xcb_window_t wid = xcb_generate_id(connection);
|
xcb_window_t wid = xcb_generate_id(connection);
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -93,15 +87,11 @@ xcb_window_t find_subwindow(xcb_connection_t *connection, xcb_window_t win, int
|
||||||
if (!get_window_attributes(connection, children[i], &attrs)) continue;
|
if (!get_window_attributes(connection, children[i], &attrs)) continue;
|
||||||
|
|
||||||
if (attrs.map_state != 0 && rect.width == w && rect.height == h) {
|
if (attrs.map_state != 0 && rect.width == w && rect.height == h) {
|
||||||
fprintf(stderr, "DBG: matching window WID=0x%08x x=%d y=%d w=%d h=%d\n", children[i], rect.x, rect.y, rect.width, rect.height);
|
|
||||||
free(qt_reply);
|
free(qt_reply);
|
||||||
return children[i];
|
return children[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(qt_reply);
|
free(qt_reply);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "ERR: didn't find matching subwindow, returning WID=0x%08x\n", win);
|
|
||||||
|
|
||||||
return win;
|
return win;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue