Browse Source

Bugfix: Correctly center unlock indicator after reconfiguring screens (Thanks xn)

Fixes: #712
master
Michael Stapelberg 13 years ago
parent
commit
9b29ae7afd
2 changed files with 6 additions and 1 deletions
  1. +5
    -0
      i3lock.c
  2. +1
    -1
      unlock_indicator.c

+ 5
- 0
i3lock.c View File

@ -431,6 +431,9 @@ void handle_screen_resize(void) {
uint32_t mask = XCB_CONFIG_WINDOW_WIDTH | XCB_CONFIG_WINDOW_HEIGHT;
xcb_configure_window(conn, win, mask, last_resolution);
xcb_flush(conn);
xinerama_query_screens();
redraw_screen();
}
/*
@ -683,6 +686,8 @@ int main(int argc, char *argv[]) {
last_resolution[0] = screen->width_in_pixels;
last_resolution[1] = screen->height_in_pixels;
xcb_change_window_attributes(conn, screen->root, XCB_CW_EVENT_MASK,
(uint32_t[]){ XCB_EVENT_MASK_STRUCTURE_NOTIFY });
#ifndef NOLIBCAIRO
if (image_path) {


+ 1
- 1
unlock_indicator.c View File

@ -277,7 +277,7 @@ void redraw_screen(void) {
xcb_change_window_attributes(conn, win, XCB_CW_BACK_PIXMAP, (uint32_t[1]){ bg_pixmap });
/* XXX: Possible optimization: Only update the area in the middle of the
* screen instead of the whole screen. */
xcb_clear_area(conn, 0, win, 0, 0, screen->width_in_pixels, screen->height_in_pixels);
xcb_clear_area(conn, 0, win, 0, 0, last_resolution[0], last_resolution[1]);
xcb_free_pixmap(conn, bg_pixmap);
xcb_flush(conn);
}


Loading…
Cancel
Save