remove flickering when window size is changed
This commit is contained in:
parent
965fd17c7b
commit
8f9866ced5
30
dunst.c
30
dunst.c
@ -64,6 +64,7 @@ static dimension_t geometry;
|
|||||||
static XScreenSaverInfo *screensaver_info;
|
static XScreenSaverInfo *screensaver_info;
|
||||||
static int font_h;
|
static int font_h;
|
||||||
static int print_notifications = False;
|
static int print_notifications = False;
|
||||||
|
static dimension_t window_dim;
|
||||||
|
|
||||||
int dunst_grab_errored = False;
|
int dunst_grab_errored = False;
|
||||||
|
|
||||||
@ -696,9 +697,20 @@ void draw_win(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* move and map window */
|
/* move and map window */
|
||||||
|
if (x != window_dim.x || y != window_dim.y
|
||||||
|
|| width != window_dim.w
|
||||||
|
|| height != window_dim.h) {
|
||||||
|
|
||||||
|
XResizeWindow(dc->dpy, win, width, height);
|
||||||
|
XMoveWindow(dc->dpy, win, x, y);
|
||||||
|
|
||||||
|
window_dim.x = x;
|
||||||
|
window_dim.y = y;
|
||||||
|
window_dim.h = height;
|
||||||
|
window_dim.w = width;
|
||||||
|
}
|
||||||
|
|
||||||
mapdc(dc, win, width, height);
|
mapdc(dc, win, width, height);
|
||||||
XResizeWindow(dc->dpy, win, width, height);
|
|
||||||
XMoveWindow(dc->dpy, win, x, y);
|
|
||||||
|
|
||||||
free(x_more.txt);
|
free(x_more.txt);
|
||||||
}
|
}
|
||||||
@ -1297,11 +1309,6 @@ void map_win(void)
|
|||||||
|
|
||||||
grab_key(&close_ks);
|
grab_key(&close_ks);
|
||||||
grab_key(&close_all_ks);
|
grab_key(&close_all_ks);
|
||||||
|
|
||||||
update_screen_info();
|
|
||||||
|
|
||||||
XMapRaised(dc->dpy, win);
|
|
||||||
|
|
||||||
setup_error_handler();
|
setup_error_handler();
|
||||||
XGrabButton(dc->dpy, AnyButton, AnyModifier, win, False,
|
XGrabButton(dc->dpy, AnyButton, AnyModifier, win, False,
|
||||||
BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
|
BUTTONMASK, GrabModeAsync, GrabModeSync, None, None);
|
||||||
@ -1309,8 +1316,10 @@ void map_win(void)
|
|||||||
fprintf(stderr, "Unable to grab mouse button(s)\n");
|
fprintf(stderr, "Unable to grab mouse button(s)\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
XFlush(dc->dpy);
|
update_screen_info();
|
||||||
|
XMapRaised(dc->dpy, win);
|
||||||
draw_win();
|
draw_win();
|
||||||
|
XFlush(dc->dpy);
|
||||||
visible = True;
|
visible = True;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1759,6 +1768,11 @@ int main(int argc, char *argv[])
|
|||||||
color_strings[ColBG][LOW] = lowbgcolor;
|
color_strings[ColBG][LOW] = lowbgcolor;
|
||||||
color_strings[ColBG][NORM] = normbgcolor;
|
color_strings[ColBG][NORM] = normbgcolor;
|
||||||
color_strings[ColBG][CRIT] = critbgcolor;
|
color_strings[ColBG][CRIT] = critbgcolor;
|
||||||
|
|
||||||
|
window_dim.x = 0;
|
||||||
|
window_dim.y = 0;
|
||||||
|
window_dim.w = 0;
|
||||||
|
window_dim.h = 0;
|
||||||
setup();
|
setup();
|
||||||
|
|
||||||
if (deprecated_mod)
|
if (deprecated_mod)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user