1
0
Fork 0
mirror of https://github.com/Raymo111/i3lock-color.git synced 2024-11-11 13:50:52 -05:00

merge upstream (fixes conflict)

This commit is contained in:
Chris Guillott 2017-03-28 10:07:49 -04:00
commit 0bd7bb2d7e
4 changed files with 30 additions and 4 deletions

View file

@ -19,6 +19,7 @@ addons:
- libev-dev
- libxcb-xinerama0-dev
- libxcb-xkb-dev
- libxcb-composite0-dev
before_install:
- "echo 'APT::Default-Release \"trusty\";' | sudo tee /etc/apt/apt.conf.d/default-release"
- "echo 'deb http://archive.ubuntu.com/ubuntu/ wily main universe' | sudo tee /etc/apt/sources.list.d/wily.list"

View file

@ -16,8 +16,8 @@ CFLAGS += -pipe
CFLAGS += -Wall
CPPFLAGS += -D_GNU_SOURCE
CPPFLAGS += -DXKBCOMPOSE=$(shell if test -e /usr/include/xkbcommon/xkbcommon-compose.h ; then echo 1 ; else echo 0 ; fi )
CFLAGS += $(shell $(PKG_CONFIG) --cflags cairo xcb-dpms xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
LIBS += $(shell $(PKG_CONFIG) --libs cairo xcb-dpms xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
CFLAGS += $(shell $(PKG_CONFIG) --cflags cairo xcb-composite xcb-dpms xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
LIBS += $(shell $(PKG_CONFIG) --libs cairo xcb-composite xcb-dpms xcb-xinerama xcb-atom xcb-image xcb-xkb xkbcommon xkbcommon-x11)
LIBS += -lpam
LIBS += -lev
LIBS += -lm

View file

@ -47,6 +47,7 @@ Requirements
- libxcb-util
- libpam-dev
- libcairo-dev
- libxcb-composite0
- libxcb-xinerama
- libev
- libx11-dev

28
xcb.c
View file

@ -11,6 +11,7 @@
#include <xcb/xcb_image.h>
#include <xcb/xcb_atom.h>
#include <xcb/xcb_aux.h>
#include <xcb/composite.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
@ -106,6 +107,29 @@ xcb_window_t open_fullscreen_window(xcb_connection_t *conn, xcb_screen_t *scr, c
uint32_t mask = 0;
uint32_t values[3];
xcb_window_t win = xcb_generate_id(conn);
xcb_window_t parent_win = scr->root;
/* Check whether the composite extension is available */
const xcb_query_extension_reply_t *extension_query = NULL;
xcb_generic_error_t *error = NULL;
xcb_composite_get_overlay_window_cookie_t cookie;
xcb_composite_get_overlay_window_reply_t *composite_reply = NULL;
extension_query = xcb_get_extension_data(conn, &xcb_composite_id);
if (extension_query && extension_query->present) {
/* When composition is used, we need to use the composite overlay
* window instead of the normal root window to be able to cover
* composited windows */
cookie = xcb_composite_get_overlay_window(conn, scr->root);
composite_reply = xcb_composite_get_overlay_window_reply(conn, cookie, &error);
if (!error && composite_reply) {
parent_win = composite_reply->overlay_win;
}
free(composite_reply);
free(error);
}
if (pixmap == XCB_NONE) {
mask |= XCB_CW_BACK_PIXEL;
@ -127,8 +151,8 @@ xcb_window_t open_fullscreen_window(xcb_connection_t *conn, xcb_screen_t *scr, c
xcb_create_window(conn,
XCB_COPY_FROM_PARENT,
win, /* the window id */
scr->root, /* parent == root */
win, /* the window id */
parent_win,
0, 0,
scr->width_in_pixels,
scr->height_in_pixels, /* dimensions */