Only react on the last Expose event in a series of events. (#2636)
Thanks to @psychon for pointing this out during the review of PR #2624. This commit extends this change to all other occurences of Expose events within i3.
This commit is contained in:
parent
f80cbf7872
commit
d58dbc3a77
|
@ -966,7 +966,10 @@ int main(int argc, char *argv[]) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XCB_EXPOSE:
|
case XCB_EXPOSE:
|
||||||
handle_expose();
|
if (((xcb_expose_event_t *)event)->count == 0) {
|
||||||
|
handle_expose();
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -525,7 +525,10 @@ int main(int argc, char *argv[]) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XCB_EXPOSE:
|
case XCB_EXPOSE:
|
||||||
handle_expose(NULL, conn, (xcb_expose_event_t *)event);
|
if (((xcb_expose_event_t *)event)->count == 0) {
|
||||||
|
handle_expose(NULL, conn, (xcb_expose_event_t *)event);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -596,7 +596,10 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case XCB_EXPOSE:
|
case XCB_EXPOSE:
|
||||||
handle_expose(conn, (xcb_expose_event_t *)event);
|
if (((xcb_expose_event_t *)event)->count == 0) {
|
||||||
|
handle_expose(conn, (xcb_expose_event_t *)event);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XCB_BUTTON_PRESS:
|
case XCB_BUTTON_PRESS:
|
||||||
|
|
|
@ -1149,8 +1149,11 @@ void xcb_chk_cb(struct ev_loop *loop, ev_check *watcher, int revents) {
|
||||||
handle_visibility_notify((xcb_visibility_notify_event_t *)event);
|
handle_visibility_notify((xcb_visibility_notify_event_t *)event);
|
||||||
break;
|
break;
|
||||||
case XCB_EXPOSE:
|
case XCB_EXPOSE:
|
||||||
/* Expose-events happen, when the window needs to be redrawn */
|
if (((xcb_expose_event_t *)event)->count == 0) {
|
||||||
redraw_bars();
|
/* Expose-events happen, when the window needs to be redrawn */
|
||||||
|
redraw_bars();
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case XCB_BUTTON_PRESS:
|
case XCB_BUTTON_PRESS:
|
||||||
/* Button press events are mouse buttons clicked on one of our bars */
|
/* Button press events are mouse buttons clicked on one of our bars */
|
||||||
|
|
|
@ -1511,7 +1511,10 @@ void handle_event(int type, xcb_generic_event_t *event) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XCB_EXPOSE:
|
case XCB_EXPOSE:
|
||||||
handle_expose_event((xcb_expose_event_t *)event);
|
if (((xcb_expose_event_t *)event)->count == 0) {
|
||||||
|
handle_expose_event((xcb_expose_event_t *)event);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case XCB_MOTION_NOTIFY:
|
case XCB_MOTION_NOTIFY:
|
||||||
|
|
|
@ -360,7 +360,10 @@ static void configure_notify(xcb_configure_notify_event_t *event) {
|
||||||
static void restore_handle_event(int type, xcb_generic_event_t *event) {
|
static void restore_handle_event(int type, xcb_generic_event_t *event) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case XCB_EXPOSE:
|
case XCB_EXPOSE:
|
||||||
expose_event((xcb_expose_event_t *)event);
|
if (((xcb_expose_event_t *)event)->count == 0) {
|
||||||
|
expose_event((xcb_expose_event_t *)event);
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case XCB_CONFIGURE_NOTIFY:
|
case XCB_CONFIGURE_NOTIFY:
|
||||||
configure_notify((xcb_configure_notify_event_t *)event);
|
configure_notify((xcb_configure_notify_event_t *)event);
|
||||||
|
|
Loading…
Reference in New Issue