From: Mikko Rasa Date: Fri, 11 Dec 2015 16:12:59 +0000 (+0200) Subject: Account for border when drawing windows X-Git-Url: http://git.tdb.fi/?p=geometrycompositor.git;a=commitdiff_plain;h=bb71fd017fc66df3f91bd2ed4366108ae0dc5a4c Account for border when drawing windows --- diff --git a/source/main.c b/source/main.c index 3f78884..637183f 100644 --- a/source/main.c +++ b/source/main.c @@ -16,6 +16,7 @@ typedef struct CompositedWindow int y; unsigned width; unsigned height; + unsigned border; int map_state; Damage damage; Pixmap pixmap; @@ -277,6 +278,7 @@ void add_window(Compositor *compositor, CompositedScreen *screen, Window w) window->y = win_attr.y; window->width = win_attr.width; window->height = win_attr.height; + window->border = win_attr.border_width; window->map_state = win_attr.map_state; window->damage = XDamageCreate(compositor->display, window->window, XDamageReportNonEmpty); @@ -535,7 +537,7 @@ void refresh_screens(Compositor *compositor) { glBindTexture(GL_TEXTURE_2D, window->texture); compositor->glXBindTexImageEXT(compositor->display, window->glx_pixmap, GLX_FRONT_LEFT_EXT, NULL); - glUniform4f(screen->geometry_loc, (float)window->x/screen->width, (float)(screen->height-window->y-window->height)/screen->height, (float)window->width/screen->width, (float)window->height/screen->height); + glUniform4f(screen->geometry_loc, (float)window->x/screen->width, (float)(screen->height-window->y-window->height)/screen->height, (float)(window->width+2*window->border)/screen->width, (float)(window->height+2*window->border)/screen->height); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); compositor->glXReleaseTexImageEXT(compositor->display, window->glx_pixmap, GLX_FRONT_LEFT_EXT); XDamageSubtract(compositor->display, window->damage, None, None);