xwayland: Clear output buffers on scale change
This commit is contained in:
parent
aa849658c5
commit
18f1ce0b6e
|
@ -51,6 +51,7 @@
|
||||||
#include "xwayland-pixmap.h"
|
#include "xwayland-pixmap.h"
|
||||||
#include "xwayland-present.h"
|
#include "xwayland-present.h"
|
||||||
#include "xwayland-shm.h"
|
#include "xwayland-shm.h"
|
||||||
|
#include "xwayland-window-buffers.h"
|
||||||
|
|
||||||
#ifdef MITSHM
|
#ifdef MITSHM
|
||||||
#include "shmint.h"
|
#include "shmint.h"
|
||||||
|
@ -590,12 +591,23 @@ void
|
||||||
xwl_screen_set_global_scale(struct xwl_screen *xwl_screen, int32_t scale)
|
xwl_screen_set_global_scale(struct xwl_screen *xwl_screen, int32_t scale)
|
||||||
{
|
{
|
||||||
struct xwl_output *it;
|
struct xwl_output *it;
|
||||||
|
struct xwl_window *xwl_window;
|
||||||
|
|
||||||
xwl_screen->global_output_scale = scale;
|
xwl_screen->global_output_scale = scale;
|
||||||
|
|
||||||
/* change randr resolutions and positions */
|
/* change randr resolutions and positions */
|
||||||
xorg_list_for_each_entry(it, &xwl_screen->output_list, link) {
|
xorg_list_for_each_entry(it, &xwl_screen->output_list, link) {
|
||||||
xwl_output_apply_changes(it);
|
xwl_output_apply_changes(it);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!xwl_screen->rootless && xwl_screen->screen->root) {
|
||||||
|
/* Clear all the buffers, so that they'll be remade with the new sizes
|
||||||
|
* (this doesn't occur automatically because as far as Xorg is
|
||||||
|
* concerned, the window's size is the same) */
|
||||||
|
xorg_list_for_each_entry(xwl_window, &xwl_screen->window_list, link_window) {
|
||||||
|
xwl_window_buffers_recycle(xwl_window);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Bool
|
Bool
|
||||||
|
|
Loading…
Reference in New Issue
Block a user